From b105beafdb7f807479dee6e0452a0a89a05f1913 Mon Sep 17 00:00:00 2001 From: Sean Quah Date: Thu, 18 Nov 2021 16:00:00 +0000 Subject: Fix bug/redundant code to do with handling of the root space id --- synapse/rest/admin/space.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/synapse/rest/admin/space.py b/synapse/rest/admin/space.py index 952240d01f..eab174d90d 100644 --- a/synapse/rest/admin/space.py +++ b/synapse/rest/admin/space.py @@ -88,12 +88,11 @@ class RemoveSpaceMemberRestServlet(ResolveRoomIdMixin, RestServlet): descendants, inaccessible_room_ids, ) = await self._space_hierarchy_handler.get_space_descendants(space_id) - space_room_ids = {space_id} - space_room_ids.update(room_id for room_id, _ in descendants) + space_room_ids = {room_id for room_id, _ in descendants} - # Determine which rooms to leave by checking join rules. + # Determine which rooms to leave by checking join rules rooms_to_check = space_room_ids.intersection(user_room_ids) - rooms_to_leave = {space_id} # Always leave the space, even if it is public + rooms_to_leave = set() state_filter = StateFilter.from_types([(EventTypes.JoinRules, "")]) for room_id in rooms_to_check: current_state_ids = await self._store.get_filtered_current_state_ids( @@ -112,6 +111,10 @@ class RemoveSpaceMemberRestServlet(ResolveRoomIdMixin, RestServlet): if join_rules != JoinRules.PUBLIC: rooms_to_leave.add(room_id) + # Always leave the space, even if it is public + if space_id in user_room_ids: + rooms_to_leave.add(space_id) + # Now start leaving rooms failures: Dict[str, List[str]] = { room_id: ["Could not fully explore space or room."] -- cgit 1.5.1