mirror of
				https://github.com/matrix-org/synapse.git
				synced 2025-10-31 00:01:33 +01:00 
			
		
		
		
	Merge pull request #1641 from matrix-org/erikj/as_pushers
Ignore AS users when fetching push rules
This commit is contained in:
		
						commit
						b2d6e63b79
					
				| @ -39,6 +39,14 @@ class ApplicationServiceStore(SQLBaseStore): | |||||||
|     def get_app_services(self): |     def get_app_services(self): | ||||||
|         return self.services_cache |         return self.services_cache | ||||||
| 
 | 
 | ||||||
|  |     def get_if_app_services_interested_in_user(self, user_id): | ||||||
|  |         """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 | ||||||
|  |         return False | ||||||
|  | 
 | ||||||
|     def get_app_service_by_user_id(self, user_id): |     def get_app_service_by_user_id(self, user_id): | ||||||
|         """Retrieve an application service from their user ID. |         """Retrieve an application service from their user ID. | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -156,12 +156,20 @@ class PushRuleStore(SQLBaseStore): | |||||||
|             event=event, |             event=event, | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|         local_users_in_room = set(u for u in users_in_room if self.hs.is_mine_id(u)) |         # We ignore app service users for now. This is so that we don't fill | ||||||
|  |         # up the `get_if_users_have_pushers` cache with AS entries that we | ||||||
|  |         # know don't have pushers, nor even read receipts. | ||||||
|  |         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) | ||||||
|  |         ) | ||||||
| 
 | 
 | ||||||
|         # users in the room who have pushers need to get push rules run because |         # users in the room who have pushers need to get push rules run because | ||||||
|         # that's how their pushers work |         # that's how their pushers work | ||||||
|         if_users_with_pushers = yield self.get_if_users_have_pushers( |         if_users_with_pushers = yield self.get_if_users_have_pushers( | ||||||
|             local_users_in_room, on_invalidate=cache_context.invalidate, |             local_users_in_room, | ||||||
|  |             on_invalidate=cache_context.invalidate, | ||||||
|         ) |         ) | ||||||
|         user_ids = set( |         user_ids = set( | ||||||
|             uid for uid, have_pusher in if_users_with_pushers.items() if have_pusher |             uid for uid, have_pusher in if_users_with_pushers.items() if have_pusher | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user