summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2016-03-04 16:33:52 +0000
committerErik Johnston <erik@matrix.org>2016-03-04 16:33:52 +0000
commitbeebc0a40fd8abae2c7e1d11c563fc3f3400503b (patch)
treeea3a29870e7c608701bbf35815f216b95414da0a
parentMerge pull request #624 from matrix-org/erikj/invite_profile (diff)
parentAlways include kicks and bans in full /sync (diff)
downloadsynapse-beebc0a40fd8abae2c7e1d11c563fc3f3400503b.tar.xz
Merge pull request #625 from matrix-org/erikj/kick_ban_sync
Always include kicks and bans in full /sync
Diffstat (limited to '')
-rw-r--r--synapse/handlers/sync.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py
index fded6e4009..26a66814eb 100644
--- a/synapse/handlers/sync.py
+++ b/synapse/handlers/sync.py
@@ -209,9 +209,9 @@ class SyncHandler(BaseHandler):
             key=None
         )
 
-        membership_list = (Membership.INVITE, Membership.JOIN)
-        if sync_config.filter_collection.include_leave:
-            membership_list += (Membership.LEAVE, Membership.BAN)
+        membership_list = (
+            Membership.INVITE, Membership.JOIN, Membership.LEAVE, Membership.BAN
+        )
 
         room_list = yield self.store.get_rooms_for_user_where_membership_is(
             user_id=sync_config.user.to_string(),
@@ -257,6 +257,12 @@ class SyncHandler(BaseHandler):
                         invite=invite,
                     ))
                 elif event.membership in (Membership.LEAVE, Membership.BAN):
+                    # Always send down rooms we were banned or kicked from.
+                    if not sync_config.filter_collection.include_leave:
+                        if event.membership == Membership.LEAVE:
+                            if sync_config.user.to_string() == event.sender:
+                                continue
+
                     leave_token = now_token.copy_and_replace(
                         "room_key", "s%d" % (event.stream_ordering,)
                     )