Make power level control permission-aware

This commit is contained in:
miruka
2020-07-13 18:44:20 -04:00
parent f408d511a6
commit 757679a6e0
6 changed files with 43 additions and 12 deletions

View File

@@ -1684,6 +1684,7 @@ class MatrixClient(nio.AsyncClient):
guests_allowed = room.guest_access == "can_join",
default_power_level = levels.defaults.users_default,
own_power_level = levels.get_user_level(self.user_id),
can_invite = levels.can_user_invite(self.user_id),
can_kick = levels.can_user_kick(self.user_id),
can_redact_all = levels.can_user_redact(self.user_id),
@@ -1694,6 +1695,7 @@ class MatrixClient(nio.AsyncClient):
can_set_encryption = can_send_state("m.room.encryption"),
can_set_join_rules = can_send_state("m.room.join_rules"),
can_set_guest_access = can_send_state("m.room.guest_access"),
can_set_power_levels = can_send_state("m.room.power_levels"),
last_event_date = last_event_date,

View File

@@ -180,6 +180,7 @@ class Room(ModelItem):
guests_allowed: bool = True
default_power_level: int = 0
own_power_level: int = 0
can_invite: bool = False
can_kick: bool = False
can_redact_all: bool = False
@@ -190,6 +191,7 @@ class Room(ModelItem):
can_set_encryption: bool = False
can_set_join_rules: bool = False
can_set_guest_access: bool = False
can_set_power_levels: bool = False
last_event_date: datetime = ZERO_DATE