Skip to content

Commit 2125bd2

Browse files
committed
Add power level checks for set_state_event
1 parent 28e44cb commit 2125bd2

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

mautrix_appservice/intent_api.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -333,8 +333,9 @@ async def set_power_levels(self, room_id: str, content: dict) -> dict:
333333
if "events" not in content:
334334
content["events"] = {}
335335
response = await self.send_state_event(room_id, "m.room.power_levels", content)
336-
self.state_store.set_power_levels(room_id, content)
337-
return response
336+
if response:
337+
self.state_store.set_power_levels(room_id, content)
338+
return response
338339

339340
async def get_pinned_messages(self, room_id: str) -> List[str]:
340341
await self.ensure_joined(room_id)
@@ -513,9 +514,10 @@ async def send_state_event(self, room_id: str, event_type: str, content: dict,
513514
elif not event_type:
514515
raise ValueError("Event type not given")
515516
await self.ensure_joined(room_id)
516-
await self._ensure_has_power_level_for(room_id, event_type, is_state_event=True)
517-
url = self._get_state_url(room_id, event_type, state_key)
518-
return await self.client.request("PUT", url, content)
517+
has_pl = await self._ensure_has_power_level_for(room_id, event_type, is_state_event=True)
518+
if has_pl:
519+
url = self._get_state_url(room_id, event_type, state_key)
520+
return await self.client.request("PUT", url, content)
519521

520522
async def get_state_event(self, room_id: str, event_type: str, state_key: Optional[str] = ""
521523
) -> dict:
@@ -614,13 +616,13 @@ async def _ensure_has_power_level_for(self, room_id: str, event_type: str,
614616
await self.get_power_levels(room_id)
615617
if self.state_store.has_power_level(room_id, self.mxid, event_type,
616618
is_state_event=is_state_event):
617-
return
619+
return True
618620
elif not self.bot:
619621
self.log.warning(
620622
f"Power level of {self.mxid} is not enough for {event_type} in {room_id}")
621623
# raise IntentError(f"Power level of {self.mxid} is not enough"
622624
# f"for {event_type} in {room_id}")
623-
return
625+
return False
624626
# TODO implement
625627

626628
# endregion

0 commit comments

Comments
 (0)