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

Correctly ignore invites from ignored users #11511

Merged
merged 4 commits into from
Dec 7, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/11511.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix a long-standing bug where invites from ignored users were included in incremental syncs.
11 changes: 6 additions & 5 deletions synapse/handlers/sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -1771,6 +1771,7 @@ async def _get_rooms_changed(

if not non_joins:
continue
last_non_join = non_joins[-1]

# Check if we have left the room. This can either be because we were
# joined before *or* that we since joined and then left.
Expand All @@ -1792,18 +1793,18 @@ async def _get_rooms_changed(
newly_left_rooms.append(room_id)

# Only bother if we're still currently invited
should_invite = non_joins[-1].membership == Membership.INVITE
should_invite = last_non_join.membership == Membership.INVITE
if should_invite:
if event.sender not in ignored_users:
invite_room_sync = InvitedSyncResult(room_id, invite=non_joins[-1])
if last_non_join.sender not in ignored_users:
invite_room_sync = InvitedSyncResult(room_id, invite=last_non_join)
if invite_room_sync:
invited.append(invite_room_sync)

# Only bother if our latest membership in the room is knock (and we haven't
# been accepted/rejected in the meantime).
should_knock = non_joins[-1].membership == Membership.KNOCK
should_knock = last_non_join.membership == Membership.KNOCK
if should_knock:
knock_room_sync = KnockedSyncResult(room_id, knock=non_joins[-1])
knock_room_sync = KnockedSyncResult(room_id, knock=last_non_join)
if knock_room_sync:
knocked.append(knock_room_sync)

Expand Down