mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-25 08:49:26 -05:00
Fix 'FederationGroupsRoomsServlet' API when group has room server is not in. (#7599)
This commit is contained in:
parent
f5353eff21
commit
cb495f526d
1
changelog.d/7599.bugfix
Normal file
1
changelog.d/7599.bugfix
Normal file
@ -0,0 +1 @@
|
|||||||
|
Fix bug where returning rooms for a group would fail if it included a room that the server was not in.
|
@ -253,10 +253,21 @@ class RoomListHandler(BaseHandler):
|
|||||||
"""
|
"""
|
||||||
result = {"room_id": room_id, "num_joined_members": num_joined_users}
|
result = {"room_id": room_id, "num_joined_members": num_joined_users}
|
||||||
|
|
||||||
|
if with_alias:
|
||||||
|
aliases = yield self.store.get_aliases_for_room(
|
||||||
|
room_id, on_invalidate=cache_context.invalidate
|
||||||
|
)
|
||||||
|
if aliases:
|
||||||
|
result["aliases"] = aliases
|
||||||
|
|
||||||
current_state_ids = yield self.store.get_current_state_ids(
|
current_state_ids = yield self.store.get_current_state_ids(
|
||||||
room_id, on_invalidate=cache_context.invalidate
|
room_id, on_invalidate=cache_context.invalidate
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if not current_state_ids:
|
||||||
|
# We're not in the room, so may as well bail out here.
|
||||||
|
return result
|
||||||
|
|
||||||
event_map = yield self.store.get_events(
|
event_map = yield self.store.get_events(
|
||||||
[
|
[
|
||||||
event_id
|
event_id
|
||||||
@ -289,14 +300,7 @@ class RoomListHandler(BaseHandler):
|
|||||||
create_event = current_state.get((EventTypes.Create, ""))
|
create_event = current_state.get((EventTypes.Create, ""))
|
||||||
result["m.federate"] = create_event.content.get("m.federate", True)
|
result["m.federate"] = create_event.content.get("m.federate", True)
|
||||||
|
|
||||||
if with_alias:
|
name_event = current_state.get((EventTypes.Name, ""))
|
||||||
aliases = yield self.store.get_aliases_for_room(
|
|
||||||
room_id, on_invalidate=cache_context.invalidate
|
|
||||||
)
|
|
||||||
if aliases:
|
|
||||||
result["aliases"] = aliases
|
|
||||||
|
|
||||||
name_event = yield current_state.get((EventTypes.Name, ""))
|
|
||||||
if name_event:
|
if name_event:
|
||||||
name = name_event.content.get("name", None)
|
name = name_event.content.get("name", None)
|
||||||
if name:
|
if name:
|
||||||
|
Loading…
Reference in New Issue
Block a user