mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-04 18:44:56 -04:00
Add all the necessary checks to make banning work.
This commit is contained in:
parent
3faa2ae78c
commit
b8ab9f1c0a
6 changed files with 54 additions and 6 deletions
|
@ -166,7 +166,7 @@ class RoomCreationHandler(BaseRoomHandler):
|
|||
|
||||
power_levels_event = create(
|
||||
etype=RoomPowerLevelsEvent.TYPE,
|
||||
**{creator.to_string(): 10}
|
||||
**{creator.to_string(): 10, "default": 0}
|
||||
)
|
||||
|
||||
join_rule = JoinRules.PUBLIC if is_public else JoinRules.INVITE
|
||||
|
@ -343,6 +343,16 @@ class RoomMemberHandler(BaseRoomHandler):
|
|||
if do_auth:
|
||||
yield self.auth.check(event, snapshot, raises=True)
|
||||
|
||||
# If we're banning someone, set a req power level
|
||||
if event.membership == Membership.BAN:
|
||||
if not hasattr(event, "required_power_level") or event.required_power_level is None:
|
||||
# Add some default required_power_level
|
||||
user_level = yield self.store.get_power_level(
|
||||
event.room_id,
|
||||
event.user_id,
|
||||
)
|
||||
event.required_power_level = user_level
|
||||
|
||||
if prev_state and prev_state.membership == event.membership:
|
||||
# double same action, treat this event as a NOOP.
|
||||
defer.returnValue({})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue