2 files changed, 6 insertions, 3 deletions
diff --git a/synapse/storage/appservice.py b/synapse/storage/appservice.py
index 514570561f..0e9e8d3452 100644
--- a/synapse/storage/appservice.py
+++ b/synapse/storage/appservice.py
@@ -39,12 +39,15 @@ class ApplicationServiceStore(SQLBaseStore):
def get_app_services(self):
return self.services_cache
- def get_if_app_services_interested_in_user(self, user_id):
+ def get_if_app_services_interested_in_user(self, user_id, exclusive=False):
"""Check if the user is one associated with an app service
"""
for service in self.services_cache:
if service.is_interested_in_user(user_id):
- return True
+ if exclusive:
+ return service.is_exclusive_user(user_id)
+ else:
+ return True
return False
def get_app_service_by_user_id(self, user_id):
diff --git a/synapse/storage/push_rule.py b/synapse/storage/push_rule.py
index 0a819d32c5..65bad3fad6 100644
--- a/synapse/storage/push_rule.py
+++ b/synapse/storage/push_rule.py
@@ -163,7 +163,7 @@ class PushRuleStore(SQLBaseStore):
local_users_in_room = set(
u for u in users_in_room
if self.hs.is_mine_id(u)
- and not self.get_if_app_services_interested_in_user(u)
+ and not self.get_if_app_services_interested_in_user(u, exclusive=True)
)
# users in the room who have pushers need to get push rules run because
|