summary refs log tree commit diff
path: root/synapse/storage/push_rule.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2017-05-08 13:07:43 +0100
committerErik Johnston <erik@matrix.org>2017-05-08 13:07:43 +0100
commitfe7c1b969c5b0f51b6fe86e78e96350224fd0fb1 (patch)
tree0390714f1859dd04cca5447bb0e7b0e8988f14b1 /synapse/storage/push_rule.py
parentRevert "Speed up filtering of a single event in push" (diff)
downloadsynapse-fe7c1b969c5b0f51b6fe86e78e96350224fd0fb1.tar.xz
Revert "We don't care about forgotten rooms"
This reverts commit ad8b316939d59230526e60660caf9094cff62c8f.
Diffstat (limited to 'synapse/storage/push_rule.py')
-rw-r--r--synapse/storage/push_rule.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/synapse/storage/push_rule.py b/synapse/storage/push_rule.py
index cbec255966..5467ba51c7 100644
--- a/synapse/storage/push_rule.py
+++ b/synapse/storage/push_rule.py
@@ -184,6 +184,18 @@ class PushRuleStore(SQLBaseStore):
             if uid in local_users_in_room:
                 user_ids.add(uid)
 
+        forgotten = yield self.who_forgot_in_room(
+            event.room_id, on_invalidate=cache_context.invalidate,
+        )
+
+        for row in forgotten:
+            user_id = row["user_id"]
+            event_id = row["event_id"]
+
+            mem_id = current_state_ids.get((EventTypes.Member, user_id), None)
+            if event_id == mem_id:
+                user_ids.discard(user_id)
+
         rules_by_user = yield self.bulk_get_push_rules(
             user_ids, on_invalidate=cache_context.invalidate,
         )