Skip to content
Snippets Groups Projects
Commit 193cadc9 authored by Richard van der Hoff's avatar Richard van der Hoff
Browse files

Address review comments

Improve comments, get old room state from the context we already have
parent 474810d9
No related branches found
No related tags found
No related merge requests found
...@@ -136,19 +136,21 @@ class RoomCreationHandler(BaseHandler): ...@@ -136,19 +136,21 @@ class RoomCreationHandler(BaseHandler):
requester, tombstone_event, tombstone_context, requester, tombstone_event, tombstone_context,
) )
# ... and restrict the PLs in the old room, if possible. old_room_state = yield tombstone_context.get_current_state_ids(self.store)
old_room_pl_state = yield self.state_handler.get_current_state( old_room_pl_event_id = old_room_state.get((EventTypes.PowerLevels, ""))
old_room_id,
event_type=EventTypes.PowerLevels,
latest_event_ids=(tombstone_event.event_id, ),
)
if old_room_pl_state is None: if old_room_pl_event_id is None:
logger.warning( logger.warning(
"Not supported: upgrading a room with no PL event. Not setting PLs " "Not supported: upgrading a room with no PL event. Not setting PLs "
"in old room.", "in old room.",
) )
else: 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) pl_content = dict(old_room_pl_state.content)
users_default = int(pl_content.get("users_default", 0)) users_default = int(pl_content.get("users_default", 0))
restricted_level = max(users_default + 1, 50) restricted_level = max(users_default + 1, 50)
......
...@@ -31,6 +31,22 @@ logger = logging.getLogger(__name__) ...@@ -31,6 +31,22 @@ logger = logging.getLogger(__name__)
class RoomUpgradeRestServlet(RestServlet): class RoomUpgradeRestServlet(RestServlet):
"""Handler for room uprade requests.
Handles requests of the form:
POST /_matrix/client/r0/rooms/$roomid/upgrade HTTP/1.1
Content-Type: application/json
{
"new_version": "2",
}
Creates a new room and shuts down the old one. Returns the ID of the new room.
Args:
hs (synapse.server.HomeServer):
"""
PATTERNS = client_v2_patterns( PATTERNS = client_v2_patterns(
# /rooms/$roomid/upgrade # /rooms/$roomid/upgrade
"/rooms/(?P<room_id>[^/]*)/upgrade$", "/rooms/(?P<room_id>[^/]*)/upgrade$",
...@@ -38,11 +54,6 @@ class RoomUpgradeRestServlet(RestServlet): ...@@ -38,11 +54,6 @@ class RoomUpgradeRestServlet(RestServlet):
) )
def __init__(self, hs): def __init__(self, hs):
"""
Args:
hs (synapse.server.HomeServer):
"""
super(RoomUpgradeRestServlet, self).__init__() super(RoomUpgradeRestServlet, self).__init__()
self._hs = hs self._hs = hs
self._room_creation_handler = hs.get_room_creation_handler() self._room_creation_handler = hs.get_room_creation_handler()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment