diff options
author | Richard van der Hoff <richard@matrix.org> | 2018-10-26 17:10:30 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2018-10-26 17:10:30 +0100 |
commit | 193cadc988801d9035124d1fd3ca23607b9b1f25 (patch) | |
tree | 40416fa709bd6f13ef1b2c272d978cec822de80b /synapse/handlers | |
parent | fix broken test (diff) | |
download | synapse-193cadc988801d9035124d1fd3ca23607b9b1f25.tar.xz |
Address review comments
Improve comments, get old room state from the context we already have
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/room.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py index d016f0e8b8..145b5b19ee 100644 --- a/synapse/handlers/room.py +++ b/synapse/handlers/room.py @@ -136,19 +136,21 @@ class RoomCreationHandler(BaseHandler): requester, tombstone_event, tombstone_context, ) - # ... and restrict the PLs in the old room, if possible. - old_room_pl_state = yield self.state_handler.get_current_state( - old_room_id, - event_type=EventTypes.PowerLevels, - latest_event_ids=(tombstone_event.event_id, ), - ) + old_room_state = yield tombstone_context.get_current_state_ids(self.store) + old_room_pl_event_id = old_room_state.get((EventTypes.PowerLevels, "")) - if old_room_pl_state is None: + if old_room_pl_event_id is None: logger.warning( "Not supported: upgrading a room with no PL event. Not setting PLs " "in old room.", ) else: + # we try to stop regular users from speaking by setting the PL required + # to send regular events and invites to 'Moderator' level. That's normally + # 50, but if the default PL in a room is 50 or more, then we set the + # required PL above that. + + old_room_pl_state = yield self.store.get_event(old_room_pl_event_id) pl_content = dict(old_room_pl_state.content) users_default = int(pl_content.get("users_default", 0)) restricted_level = max(users_default + 1, 50) |