Skip to content

Commit

Permalink
Fix 'FederationGroupsRoomsServlet' API when group has room server is …
Browse files Browse the repository at this point in the history
…not in. (matrix-org#7599)
  • Loading branch information
erikjohnston authored and phil-flex committed Jun 16, 2020
1 parent a8f2ba3 commit dae5a0b
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
1 change: 1 addition & 0 deletions changelog.d/7599.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix bug where returning rooms for a group would fail if it included a room that the server was not in.
20 changes: 12 additions & 8 deletions synapse/handlers/room_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -253,10 +253,21 @@ def generate_room_entry(
"""
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(
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_id
Expand Down Expand Up @@ -289,14 +300,7 @@ def generate_room_entry(
create_event = current_state.get((EventTypes.Create, ""))
result["m.federate"] = create_event.content.get("m.federate", True)

if with_alias:
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, ""))
name_event = current_state.get((EventTypes.Name, ""))
if name_event:
name = name_event.content.get("name", None)
if name:
Expand Down

0 comments on commit dae5a0b

Please sign in to comment.