Use correct defaults in has_power_level()
This commit is contained in:
@@ -467,7 +467,7 @@ class IntentAPI:
|
||||
elif not event_type:
|
||||
raise ValueError("Event type not given")
|
||||
await self.ensure_joined(room_id)
|
||||
await self._ensure_has_power_level_for(room_id, event_type)
|
||||
await self._ensure_has_power_level_for(room_id, event_type, is_state_event=True)
|
||||
url = self._get_state_url(room_id, event_type, state_key)
|
||||
return await self.client.request("PUT", url, content)
|
||||
|
||||
@@ -555,7 +555,7 @@ class IntentAPI:
|
||||
return
|
||||
self.state_store.registered(self.mxid)
|
||||
|
||||
async def _ensure_has_power_level_for(self, room_id, event_type):
|
||||
async def _ensure_has_power_level_for(self, room_id, event_type, is_state_event=False):
|
||||
if not room_id:
|
||||
raise ValueError("Room ID not given")
|
||||
elif not event_type:
|
||||
@@ -563,7 +563,8 @@ class IntentAPI:
|
||||
|
||||
if not self.state_store.has_power_levels(room_id):
|
||||
await self.get_power_levels(room_id)
|
||||
if self.state_store.has_power_level(room_id, self.mxid, event_type):
|
||||
if self.state_store.has_power_level(room_id, self.mxid, event_type,
|
||||
is_state_event=is_state_event):
|
||||
return
|
||||
elif not self.bot:
|
||||
self.log.warning(
|
||||
|
||||
@@ -127,10 +127,12 @@ class StateStore:
|
||||
def get_power_levels(self, room):
|
||||
return self.power_levels[room]
|
||||
|
||||
def has_power_level(self, room, user, event):
|
||||
def has_power_level(self, room, user, event, is_state_event=False):
|
||||
room_levels = self.power_levels.get(room, {})
|
||||
required = room_levels.get("events", {}).get(event, 95)
|
||||
has = room_levels.get("users", {}).get(user, 0)
|
||||
default_required = (room_levels.get("state_default", 50) if is_state_event
|
||||
else room_levels.get("events_default", 0))
|
||||
required = room_levels.get("events", {}).get(event, default_required)
|
||||
has = room_levels.get("users", {}).get(user, room_levels.get("users_default", 0))
|
||||
return has >= required
|
||||
|
||||
def set_power_level(self, room, user, level):
|
||||
|
||||
Reference in New Issue
Block a user