diff options
Diffstat (limited to 'synapse/handlers/room.py')
-rw-r--r-- | synapse/handlers/room.py | 49 |
1 files changed, 29 insertions, 20 deletions
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py index dace364eae..9262afb474 100644 --- a/synapse/handlers/room.py +++ b/synapse/handlers/room.py @@ -22,7 +22,7 @@ from synapse.api.errors import StoreError, SynapseError from synapse.api.events.room import ( RoomMemberEvent, RoomCreateEvent, RoomPowerLevelsEvent, RoomJoinRulesEvent, RoomAddStateLevelEvent, - RoomSendEventLevelEvent, + RoomSendEventLevelEvent, RoomOpsPowerLevelsEvent, ) from synapse.util import stringutils from ._base import BaseRoomHandler @@ -151,35 +151,44 @@ class RoomCreationHandler(BaseRoomHandler): "user_id": creator.to_string(), } - creation_event = self.event_factory.create_event( + def create(etype, **content): + return self.event_factory.create_event( + etype=etype, + content=content, + **event_keys + ) + + creation_event = create( etype=RoomCreateEvent.TYPE, - content={"creator": creator.to_string(), "default": 0}, - **event_keys + creator=creator.to_string(), + default=0, ) - power_levels_event = self.event_factory.create_event( + power_levels_event = create( etype=RoomPowerLevelsEvent.TYPE, - content={creator.to_string(): 10}, - **event_keys + **{creator.to_string(): 10} ) join_rule = JoinRules.PUBLIC if is_public else JoinRules.INVITE - join_rules_event = self.event_factory.create_event( + join_rules_event = create( etype=RoomJoinRulesEvent.TYPE, - content={"join_rule": join_rule}, - **event_keys + join_rule=join_rule, ) - add_state_event = self.event_factory.create_event( + add_state_event = create( etype=RoomAddStateLevelEvent.TYPE, - content={"level": 10}, - **event_keys + level=10, ) - send_event = self.event_factory.create_event( + send_event = create( etype=RoomSendEventLevelEvent.TYPE, - content={"level": 0}, - **event_keys + level=0, + ) + + ops = create( + etype=RoomOpsPowerLevelsEvent.TYPE, + ban_level=5, + kick_level=5, ) return [ @@ -188,6 +197,7 @@ class RoomCreationHandler(BaseRoomHandler): join_rules_event, add_state_event, send_event, + ops, ] @@ -493,10 +503,9 @@ class RoomMemberHandler(BaseRoomHandler): host = target_user.domain destinations.append(host) - # If we are joining a remote HS, include that. - if membership == Membership.JOIN: - host = target_user.domain - destinations.append(host) + # Always include target domain + host = target_user.domain + destinations.append(host) return self._on_new_room_event( event, snapshot, extra_destinations=destinations, |