Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 756fe3c

Browse files
committed
Remove special casing of m.room.aliases events (#7034)
* commit '60724c46b': Remove special casing of `m.room.aliases` events (#7034)
2 parents 6095a49 + 60724c4 commit 756fe3c

File tree

5 files changed

+35
-42
lines changed

5 files changed

+35
-42
lines changed

changelog.d/7034.removal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Remove special handling of aliases events from [MSC2260](https://github.com/matrix-org/matrix-doc/pull/2260) added in v1.10.0rc1.

synapse/handlers/room.py

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -294,24 +294,14 @@ def _update_upgraded_room_pls(
294294
except AuthError as e:
295295
logger.warning("Unable to update PLs in old room: %s", e)
296296

297-
new_pl_content = copy_power_levels_contents(old_room_pl_state.content)
298-
299-
# pre-msc2260 rooms may not have the right setting for aliases. If no other
300-
# value is set, set it now.
301-
events_default = new_pl_content.get("events_default", 0)
302-
new_pl_content.setdefault("events", {}).setdefault(
303-
EventTypes.Aliases, events_default
304-
)
305-
306-
logger.debug("Setting correct PLs in new room to %s", new_pl_content)
307297
yield self.event_creation_handler.create_and_send_nonmember_event(
308298
requester,
309299
{
310300
"type": EventTypes.PowerLevels,
311301
"state_key": "",
312302
"room_id": new_room_id,
313303
"sender": requester.user.to_string(),
314-
"content": new_pl_content,
304+
"content": old_room_pl_state.content,
315305
},
316306
ratelimit=False,
317307
)
@@ -834,10 +824,6 @@ def send(etype, content, **kwargs):
834824
EventTypes.RoomHistoryVisibility: 100,
835825
EventTypes.CanonicalAlias: 50,
836826
EventTypes.RoomAvatar: 50,
837-
# MSC2260: Allow everybody to send alias events by default
838-
# This will be reudundant on pre-MSC2260 rooms, since the
839-
# aliases event is special-cased.
840-
EventTypes.Aliases: 0,
841827
EventTypes.Tombstone: 100,
842828
EventTypes.ServerACL: 100,
843829
},

synapse/rest/client/v1/room.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -189,12 +189,6 @@ async def on_PUT(self, request, room_id, event_type, state_key, txn_id=None):
189189

190190
content = parse_json_object_from_request(request)
191191

192-
if event_type == EventTypes.Aliases:
193-
# MSC2260
194-
raise SynapseError(
195-
400, "Cannot send m.room.aliases events via /rooms/{room_id}/state"
196-
)
197-
198192
event_dict = {
199193
"type": event_type,
200194
"content": content,
@@ -242,12 +236,6 @@ async def on_POST(self, request, room_id, event_type, txn_id=None):
242236
requester = await self.auth.get_user_by_req(request, allow_guest=True)
243237
content = parse_json_object_from_request(request)
244238

245-
if event_type == EventTypes.Aliases:
246-
# MSC2260
247-
raise SynapseError(
248-
400, "Cannot send m.room.aliases events via /rooms/{room_id}/send"
249-
)
250-
251239
event_dict = {
252240
"type": event_type,
253241
"content": content,

tests/rest/admin/test_admin.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,13 @@ def test_correct_room_attributes(self):
868868
self.assertEqual(200, int(channel.result["code"]), msg=channel.result["body"])
869869

870870
# Set this new alias as the canonical alias for this room
871+
self.helper.send_state(
872+
room_id,
873+
"m.room.aliases",
874+
{"aliases": [test_alias]},
875+
tok=self.admin_user_tok,
876+
state_key="test",
877+
)
871878
self.helper.send_state(
872879
room_id,
873880
"m.room.canonical_alias",

tests/rest/client/v1/test_directory.py

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -51,30 +51,26 @@ def prepare(self, reactor, clock, homeserver):
5151
self.user = self.register_user("user", "test")
5252
self.user_tok = self.login("user", "test")
5353

54-
def test_cannot_set_alias_via_state_event(self):
55-
self.ensure_user_joined_room()
56-
url = "/_matrix/client/r0/rooms/%s/state/m.room.aliases/%s" % (
57-
self.room_id,
58-
self.hs.hostname,
59-
)
60-
61-
data = {"aliases": [self.random_alias(5)]}
62-
request_data = json.dumps(data)
63-
64-
request, channel = self.make_request(
65-
"PUT", url, request_data, access_token=self.user_tok
66-
)
67-
self.render(request)
68-
self.assertEqual(channel.code, 400, channel.result)
54+
def test_state_event_not_in_room(self):
55+
self.ensure_user_left_room()
56+
self.set_alias_via_state_event(403)
6957

7058
def test_directory_endpoint_not_in_room(self):
7159
self.ensure_user_left_room()
7260
self.set_alias_via_directory(403)
7361

62+
def test_state_event_in_room_too_long(self):
63+
self.ensure_user_joined_room()
64+
self.set_alias_via_state_event(400, alias_length=256)
65+
7466
def test_directory_in_room_too_long(self):
7567
self.ensure_user_joined_room()
7668
self.set_alias_via_directory(400, alias_length=256)
7769

70+
def test_state_event_in_room(self):
71+
self.ensure_user_joined_room()
72+
self.set_alias_via_state_event(200)
73+
7874
def test_directory_in_room(self):
7975
self.ensure_user_joined_room()
8076
self.set_alias_via_directory(200)
@@ -106,6 +102,21 @@ def test_room_creation(self):
106102
self.render(request)
107103
self.assertEqual(channel.code, 200, channel.result)
108104

105+
def set_alias_via_state_event(self, expected_code, alias_length=5):
106+
url = "/_matrix/client/r0/rooms/%s/state/m.room.aliases/%s" % (
107+
self.room_id,
108+
self.hs.hostname,
109+
)
110+
111+
data = {"aliases": [self.random_alias(alias_length)]}
112+
request_data = json.dumps(data)
113+
114+
request, channel = self.make_request(
115+
"PUT", url, request_data, access_token=self.user_tok
116+
)
117+
self.render(request)
118+
self.assertEqual(channel.code, expected_code, channel.result)
119+
109120
def set_alias_via_directory(self, expected_code, alias_length=5):
110121
url = "/_matrix/client/r0/directory/room/%s" % self.random_alias(alias_length)
111122
data = {"room_id": self.room_id}

0 commit comments

Comments
 (0)