mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-13 22:34:05 +01:00
Remove special casing of m.room.aliases
events (#7034)
This commit is contained in:
parent
6a35046363
commit
60724c46b7
5 changed files with 35 additions and 42 deletions
1
changelog.d/7034.removal
Normal file
1
changelog.d/7034.removal
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Remove special handling of aliases events from [MSC2260](https://github.com/matrix-org/matrix-doc/pull/2260) added in v1.10.0rc1.
|
|
@ -292,16 +292,6 @@ class RoomCreationHandler(BaseHandler):
|
||||||
except AuthError as e:
|
except AuthError as e:
|
||||||
logger.warning("Unable to update PLs in old room: %s", e)
|
logger.warning("Unable to update PLs in old room: %s", e)
|
||||||
|
|
||||||
new_pl_content = copy_power_levels_contents(old_room_pl_state.content)
|
|
||||||
|
|
||||||
# pre-msc2260 rooms may not have the right setting for aliases. If no other
|
|
||||||
# value is set, set it now.
|
|
||||||
events_default = new_pl_content.get("events_default", 0)
|
|
||||||
new_pl_content.setdefault("events", {}).setdefault(
|
|
||||||
EventTypes.Aliases, events_default
|
|
||||||
)
|
|
||||||
|
|
||||||
logger.debug("Setting correct PLs in new room to %s", new_pl_content)
|
|
||||||
yield self.event_creation_handler.create_and_send_nonmember_event(
|
yield self.event_creation_handler.create_and_send_nonmember_event(
|
||||||
requester,
|
requester,
|
||||||
{
|
{
|
||||||
|
@ -309,7 +299,7 @@ class RoomCreationHandler(BaseHandler):
|
||||||
"state_key": "",
|
"state_key": "",
|
||||||
"room_id": new_room_id,
|
"room_id": new_room_id,
|
||||||
"sender": requester.user.to_string(),
|
"sender": requester.user.to_string(),
|
||||||
"content": new_pl_content,
|
"content": old_room_pl_state.content,
|
||||||
},
|
},
|
||||||
ratelimit=False,
|
ratelimit=False,
|
||||||
)
|
)
|
||||||
|
@ -814,10 +804,6 @@ class RoomCreationHandler(BaseHandler):
|
||||||
EventTypes.RoomHistoryVisibility: 100,
|
EventTypes.RoomHistoryVisibility: 100,
|
||||||
EventTypes.CanonicalAlias: 50,
|
EventTypes.CanonicalAlias: 50,
|
||||||
EventTypes.RoomAvatar: 50,
|
EventTypes.RoomAvatar: 50,
|
||||||
# MSC2260: Allow everybody to send alias events by default
|
|
||||||
# This will be reudundant on pre-MSC2260 rooms, since the
|
|
||||||
# aliases event is special-cased.
|
|
||||||
EventTypes.Aliases: 0,
|
|
||||||
EventTypes.Tombstone: 100,
|
EventTypes.Tombstone: 100,
|
||||||
EventTypes.ServerACL: 100,
|
EventTypes.ServerACL: 100,
|
||||||
},
|
},
|
||||||
|
|
|
@ -189,12 +189,6 @@ class RoomStateEventRestServlet(TransactionRestServlet):
|
||||||
|
|
||||||
content = parse_json_object_from_request(request)
|
content = parse_json_object_from_request(request)
|
||||||
|
|
||||||
if event_type == EventTypes.Aliases:
|
|
||||||
# MSC2260
|
|
||||||
raise SynapseError(
|
|
||||||
400, "Cannot send m.room.aliases events via /rooms/{room_id}/state"
|
|
||||||
)
|
|
||||||
|
|
||||||
event_dict = {
|
event_dict = {
|
||||||
"type": event_type,
|
"type": event_type,
|
||||||
"content": content,
|
"content": content,
|
||||||
|
@ -242,12 +236,6 @@ class RoomSendEventRestServlet(TransactionRestServlet):
|
||||||
requester = await self.auth.get_user_by_req(request, allow_guest=True)
|
requester = await self.auth.get_user_by_req(request, allow_guest=True)
|
||||||
content = parse_json_object_from_request(request)
|
content = parse_json_object_from_request(request)
|
||||||
|
|
||||||
if event_type == EventTypes.Aliases:
|
|
||||||
# MSC2260
|
|
||||||
raise SynapseError(
|
|
||||||
400, "Cannot send m.room.aliases events via /rooms/{room_id}/send"
|
|
||||||
)
|
|
||||||
|
|
||||||
event_dict = {
|
event_dict = {
|
||||||
"type": event_type,
|
"type": event_type,
|
||||||
"content": content,
|
"content": content,
|
||||||
|
|
|
@ -868,6 +868,13 @@ class RoomTestCase(unittest.HomeserverTestCase):
|
||||||
self.assertEqual(200, int(channel.result["code"]), msg=channel.result["body"])
|
self.assertEqual(200, int(channel.result["code"]), msg=channel.result["body"])
|
||||||
|
|
||||||
# Set this new alias as the canonical alias for this room
|
# Set this new alias as the canonical alias for this room
|
||||||
|
self.helper.send_state(
|
||||||
|
room_id,
|
||||||
|
"m.room.aliases",
|
||||||
|
{"aliases": [test_alias]},
|
||||||
|
tok=self.admin_user_tok,
|
||||||
|
state_key="test",
|
||||||
|
)
|
||||||
self.helper.send_state(
|
self.helper.send_state(
|
||||||
room_id,
|
room_id,
|
||||||
"m.room.canonical_alias",
|
"m.room.canonical_alias",
|
||||||
|
|
|
@ -51,30 +51,26 @@ class DirectoryTestCase(unittest.HomeserverTestCase):
|
||||||
self.user = self.register_user("user", "test")
|
self.user = self.register_user("user", "test")
|
||||||
self.user_tok = self.login("user", "test")
|
self.user_tok = self.login("user", "test")
|
||||||
|
|
||||||
def test_cannot_set_alias_via_state_event(self):
|
def test_state_event_not_in_room(self):
|
||||||
self.ensure_user_joined_room()
|
self.ensure_user_left_room()
|
||||||
url = "/_matrix/client/r0/rooms/%s/state/m.room.aliases/%s" % (
|
self.set_alias_via_state_event(403)
|
||||||
self.room_id,
|
|
||||||
self.hs.hostname,
|
|
||||||
)
|
|
||||||
|
|
||||||
data = {"aliases": [self.random_alias(5)]}
|
|
||||||
request_data = json.dumps(data)
|
|
||||||
|
|
||||||
request, channel = self.make_request(
|
|
||||||
"PUT", url, request_data, access_token=self.user_tok
|
|
||||||
)
|
|
||||||
self.render(request)
|
|
||||||
self.assertEqual(channel.code, 400, channel.result)
|
|
||||||
|
|
||||||
def test_directory_endpoint_not_in_room(self):
|
def test_directory_endpoint_not_in_room(self):
|
||||||
self.ensure_user_left_room()
|
self.ensure_user_left_room()
|
||||||
self.set_alias_via_directory(403)
|
self.set_alias_via_directory(403)
|
||||||
|
|
||||||
|
def test_state_event_in_room_too_long(self):
|
||||||
|
self.ensure_user_joined_room()
|
||||||
|
self.set_alias_via_state_event(400, alias_length=256)
|
||||||
|
|
||||||
def test_directory_in_room_too_long(self):
|
def test_directory_in_room_too_long(self):
|
||||||
self.ensure_user_joined_room()
|
self.ensure_user_joined_room()
|
||||||
self.set_alias_via_directory(400, alias_length=256)
|
self.set_alias_via_directory(400, alias_length=256)
|
||||||
|
|
||||||
|
def test_state_event_in_room(self):
|
||||||
|
self.ensure_user_joined_room()
|
||||||
|
self.set_alias_via_state_event(200)
|
||||||
|
|
||||||
def test_directory_in_room(self):
|
def test_directory_in_room(self):
|
||||||
self.ensure_user_joined_room()
|
self.ensure_user_joined_room()
|
||||||
self.set_alias_via_directory(200)
|
self.set_alias_via_directory(200)
|
||||||
|
@ -106,6 +102,21 @@ class DirectoryTestCase(unittest.HomeserverTestCase):
|
||||||
self.render(request)
|
self.render(request)
|
||||||
self.assertEqual(channel.code, 200, channel.result)
|
self.assertEqual(channel.code, 200, channel.result)
|
||||||
|
|
||||||
|
def set_alias_via_state_event(self, expected_code, alias_length=5):
|
||||||
|
url = "/_matrix/client/r0/rooms/%s/state/m.room.aliases/%s" % (
|
||||||
|
self.room_id,
|
||||||
|
self.hs.hostname,
|
||||||
|
)
|
||||||
|
|
||||||
|
data = {"aliases": [self.random_alias(alias_length)]}
|
||||||
|
request_data = json.dumps(data)
|
||||||
|
|
||||||
|
request, channel = self.make_request(
|
||||||
|
"PUT", url, request_data, access_token=self.user_tok
|
||||||
|
)
|
||||||
|
self.render(request)
|
||||||
|
self.assertEqual(channel.code, expected_code, channel.result)
|
||||||
|
|
||||||
def set_alias_via_directory(self, expected_code, alias_length=5):
|
def set_alias_via_directory(self, expected_code, alias_length=5):
|
||||||
url = "/_matrix/client/r0/directory/room/%s" % self.random_alias(alias_length)
|
url = "/_matrix/client/r0/directory/room/%s" % self.random_alias(alias_length)
|
||||||
data = {"room_id": self.room_id}
|
data = {"room_id": self.room_id}
|
||||||
|
|
Loading…
Reference in a new issue