summary refs log tree commit diff
path: root/synapse/handlers/room.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2020-10-13 13:29:50 +0100
committerErik Johnston <erik@matrix.org>2020-10-13 13:29:50 +0100
commit43bcb1e54ecb89806529b8daf8d87369f74e9b5f (patch)
treede76fa57336d6b9bbf45f943a6dac6d8e9424e3c /synapse/handlers/room.py
parentblock membership events from spammy freenode bridge (diff)
parentMove additional tasks to the background worker, part 4 (#8513) (diff)
downloadsynapse-43bcb1e54ecb89806529b8daf8d87369f74e9b5f.tar.xz
Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixes
Diffstat (limited to 'synapse/handlers/room.py')
-rw-r--r--synapse/handlers/room.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py

index f1a6699cd4..93ed51063a 100644 --- a/synapse/handlers/room.py +++ b/synapse/handlers/room.py
@@ -120,7 +120,7 @@ class RoomCreationHandler(BaseHandler): # subsequent requests self._upgrade_response_cache = ResponseCache( hs, "room_upgrade", timeout_ms=FIVE_MINUTES_IN_MS - ) + ) # type: ResponseCache[Tuple[str, str]] self._server_notices_mxid = hs.config.server_notices_mxid self.third_party_event_rules = hs.get_third_party_event_rules() @@ -185,6 +185,7 @@ class RoomCreationHandler(BaseHandler): ShadowBanError if the requester is shadow-banned. """ user_id = requester.user.to_string() + assert self.hs.is_mine_id(user_id), "User must be our own: %s" % (user_id,) # start by allocating a new room id r = await self.store.get_room(old_room_id) @@ -229,8 +230,8 @@ class RoomCreationHandler(BaseHandler): ) # now send the tombstone - await self.event_creation_handler.send_nonmember_event( - requester, tombstone_event, tombstone_context + await self.event_creation_handler.handle_new_client_event( + requester=requester, event=tombstone_event, context=tombstone_context, ) old_room_state = await tombstone_context.get_current_state_ids() @@ -681,7 +682,16 @@ class RoomCreationHandler(BaseHandler): creator_id=user_id, is_public=is_public, room_version=room_version, ) - directory_handler = self.hs.get_handlers().directory_handler + # Check whether this visibility value is blocked by a third party module + allowed_by_third_party_rules = await ( + self.third_party_event_rules.check_visibility_can_be_modified( + room_id, visibility + ) + ) + if not allowed_by_third_party_rules: + raise SynapseError(403, "Room visibility value not allowed.") + + directory_handler = self.hs.get_directory_handler() if room_alias: await directory_handler.create_association( requester=requester,