summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--synapse/handlers/_base.py2
-rw-r--r--synapse/handlers/federation.py2
-rw-r--r--synapse/push/action_generator.py8
3 files changed, 9 insertions, 3 deletions
diff --git a/synapse/handlers/_base.py b/synapse/handlers/_base.py
index a8e8c4f5af..24c4c62698 100644
--- a/synapse/handlers/_base.py
+++ b/synapse/handlers/_base.py
@@ -267,7 +267,7 @@ class BaseHandler(object):
             event, context=context
         )
 
-        action_generator = ActionGenerator(self.store)
+        action_generator = ActionGenerator(self.hs, self.store)
         yield action_generator.handle_event(serialize_event(
             event, self.clock.time_msec()
         ))
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py
index 6a4269b500..6525bde430 100644
--- a/synapse/handlers/federation.py
+++ b/synapse/handlers/federation.py
@@ -245,7 +245,7 @@ class FederationHandler(BaseHandler):
                     yield user_joined_room(self.distributor, user, event.room_id)
 
         if not backfilled and not event.internal_metadata.is_outlier():
-            action_generator = ActionGenerator(self.store)
+            action_generator = ActionGenerator(self.hs, self.store)
             yield action_generator.handle_event(serialize_event(
                 event, self.clock.time_msec())
             )
diff --git a/synapse/push/action_generator.py b/synapse/push/action_generator.py
index 1c7cd31666..6e107ca792 100644
--- a/synapse/push/action_generator.py
+++ b/synapse/push/action_generator.py
@@ -15,6 +15,8 @@
 
 from twisted.internet import defer
 
+from synapse.types import UserID
+
 import push_rule_evaluator
 
 import logging
@@ -23,7 +25,8 @@ logger = logging.getLogger(__name__)
 
 
 class ActionGenerator:
-    def __init__(self, store):
+    def __init__(self, hs, store):
+        self.hs = hs
         self.store = store
         # really we want to get all user ids and all profile tags too,
         # since we want the actions for each profile tag for every user and
@@ -37,6 +40,9 @@ class ActionGenerator:
         users = yield self.store.get_users_in_room(event['room_id'])
 
         for uid in users:
+            if not self.hs.is_mine(UserID.from_string(uid)):
+                continue
+
             evaluator = yield push_rule_evaluator.\
                 evaluator_for_user_name_and_profile_tag(
                     uid, None, event['room_id'], self.store