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