mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-08 20:35:00 -04:00
Allow requesting the summary of a space which is joinable. (#10580)
As opposed to only allowing the summary of spaces which the user is already in or has world-readable visibility. This makes the logic consistent with whether a space/room is returned as part of a space and whether a space summary can start at a space.
This commit is contained in:
parent
5acd8b5a96
commit
3ebb6694f0
3 changed files with 45 additions and 15 deletions
|
@ -248,7 +248,21 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase):
|
|||
user2 = self.register_user("user2", "pass")
|
||||
token2 = self.login("user2", "pass")
|
||||
|
||||
# The user cannot see the space.
|
||||
# The user can see the space since it is publicly joinable.
|
||||
result = self.get_success(self.handler.get_space_summary(user2, self.space))
|
||||
expected = [(self.space, [self.room]), (self.room, ())]
|
||||
self._assert_rooms(result, expected)
|
||||
|
||||
result = self.get_success(self.handler.get_room_hierarchy(user2, self.space))
|
||||
self._assert_hierarchy(result, expected)
|
||||
|
||||
# If the space is made invite-only, it should no longer be viewable.
|
||||
self.helper.send_state(
|
||||
self.space,
|
||||
event_type=EventTypes.JoinRules,
|
||||
body={"join_rule": JoinRules.INVITE},
|
||||
tok=self.token,
|
||||
)
|
||||
self.get_failure(self.handler.get_space_summary(user2, self.space), AuthError)
|
||||
self.get_failure(self.handler.get_room_hierarchy(user2, self.space), AuthError)
|
||||
|
||||
|
@ -260,7 +274,6 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase):
|
|||
tok=self.token,
|
||||
)
|
||||
result = self.get_success(self.handler.get_space_summary(user2, self.space))
|
||||
expected = [(self.space, [self.room]), (self.room, ())]
|
||||
self._assert_rooms(result, expected)
|
||||
|
||||
result = self.get_success(self.handler.get_room_hierarchy(user2, self.space))
|
||||
|
@ -277,6 +290,7 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase):
|
|||
self.get_failure(self.handler.get_room_hierarchy(user2, self.space), AuthError)
|
||||
|
||||
# Join the space and results should be returned.
|
||||
self.helper.invite(self.space, targ=user2, tok=self.token)
|
||||
self.helper.join(self.space, user2, tok=token2)
|
||||
result = self.get_success(self.handler.get_space_summary(user2, self.space))
|
||||
self._assert_rooms(result, expected)
|
||||
|
@ -284,6 +298,16 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase):
|
|||
result = self.get_success(self.handler.get_room_hierarchy(user2, self.space))
|
||||
self._assert_hierarchy(result, expected)
|
||||
|
||||
# Attempting to view an unknown room returns the same error.
|
||||
self.get_failure(
|
||||
self.handler.get_space_summary(user2, "#not-a-space:" + self.hs.hostname),
|
||||
AuthError,
|
||||
)
|
||||
self.get_failure(
|
||||
self.handler.get_room_hierarchy(user2, "#not-a-space:" + self.hs.hostname),
|
||||
AuthError,
|
||||
)
|
||||
|
||||
def _create_room_with_join_rule(
|
||||
self, join_rule: str, room_version: Optional[str] = None, **extra_content
|
||||
) -> str:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue