From 670b47133ec75a2c28b2ebb2b18e4e70d93cbf28 Mon Sep 17 00:00:00 2001 From: Francesco Stefanini Date: Mon, 27 May 2024 15:19:57 +0200 Subject: [PATCH 1/2] Fixed `include_leave` flag being ignored on sync --- synapse/handlers/sync.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py index ac5bddd52f..2395bf51d5 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py @@ -2726,10 +2726,15 @@ class SyncHandler: since_token = sync_result_builder.since_token now_token = sync_result_builder.now_token sync_config = sync_result_builder.sync_config + membership_list = [Membership.INVITE, Membership.JOIN, Membership.KNOCK] + + if sync_config.filter_collection.include_leave: + membership_list.append(Membership.LEAVE) + membership_list.append(Membership.BAN) room_list = await self.store.get_rooms_for_local_user_where_membership_is( user_id=user_id, - membership_list=Membership.LIST, + membership_list=membership_list, excluded_rooms=sync_result_builder.excluded_room_ids, ) @@ -2763,12 +2768,6 @@ class SyncHandler: knock = await self.store.get_event(event.event_id) knocked.append(KnockedSyncResult(room_id=event.room_id, knock=knock)) elif event.membership in (Membership.LEAVE, Membership.BAN): - # Always send down rooms we were banned from or kicked from. - if not sync_config.filter_collection.include_leave: - if event.membership == Membership.LEAVE: - if user_id == event.sender: - continue - leave_token = now_token.copy_and_replace( StreamKeyType.ROOM, RoomStreamToken(stream=event.stream_ordering) ) From 3502880c4a9276ade990260ed412034cf17fe2a1 Mon Sep 17 00:00:00 2001 From: Francesco Stefanini Date: Mon, 27 May 2024 15:26:17 +0200 Subject: [PATCH 2/2] Add changelog entry --- changelog.d/17237.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/17237.bugfix diff --git a/changelog.d/17237.bugfix b/changelog.d/17237.bugfix new file mode 100644 index 0000000000..89c81275a8 --- /dev/null +++ b/changelog.d/17237.bugfix @@ -0,0 +1 @@ +Fixed `include_leave` flag being ignored on sync. Contributed by @frastefanini. \ No newline at end of file