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

Commit 709e81f

Browse files
committed
Make room alias lists peekable
As per matrix-org/matrix-spec-proposals#2432 (review), make room alias lists accessible to users outside world_readable rooms.
1 parent a0a1fd0 commit 709e81f

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

synapse/handlers/directory.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,9 @@ async def get_aliases_for_room(
463463
# allow access to server admins and current members of the room
464464
is_admin = await self.auth.is_server_admin(requester.user)
465465
if not is_admin:
466-
await self.auth.check_joined_room(room_id, requester.user.to_string())
466+
await self.auth.check_user_in_room_or_world_readable(
467+
room_id, requester.user.to_string()
468+
)
467469

468470
aliases = await self.store.get_aliases_for_room(room_id)
469471
return aliases

tests/rest/client/v1/test_rooms.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1766,6 +1766,23 @@ def test_with_aliases(self):
17661766
res = self._get_aliases(self.room_owner_tok)
17671767
self.assertEqual(set(res["aliases"]), {alias1, alias2})
17681768

1769+
def test_peekable_room(self):
1770+
alias1 = self._random_alias()
1771+
self._set_alias_via_directory(alias1)
1772+
1773+
self.helper.send_state(
1774+
self.room_id,
1775+
EventTypes.RoomHistoryVisibility,
1776+
body={"history_visibility": "world_readable"},
1777+
tok=self.room_owner_tok,
1778+
)
1779+
1780+
self.register_user("user", "test")
1781+
user_tok = self.login("user", "test")
1782+
1783+
res = self._get_aliases(user_tok)
1784+
self.assertEqual(res["aliases"], [alias1])
1785+
17691786
def _get_aliases(self, access_token: str, expected_code: int = 200) -> JsonDict:
17701787
"""Calls the endpoint under test. returns the json response object."""
17711788
request, channel = self.make_request(

0 commit comments

Comments
 (0)