mirror of
				https://github.com/element-hq/synapse.git
				synced 2025-11-03 00:03:21 -05:00 
			
		
		
		
	Don't get apservice interested rooms in RoomHandler.get_joined_rooms_for_users
This commit is contained in:
		
							parent
							
								
									40da1f200d
								
							
						
					
					
						commit
						daa01842f8
					
				@ -70,7 +70,15 @@ class EventStreamHandler(BaseHandler):
 | 
			
		||||
                self._streams_per_user[auth_user] += 1
 | 
			
		||||
 | 
			
		||||
            rm_handler = self.hs.get_handlers().room_member_handler
 | 
			
		||||
            room_ids = yield rm_handler.get_joined_rooms_for_user(auth_user)
 | 
			
		||||
 | 
			
		||||
            app_service = yield self.store.get_app_service_by_user_id(
 | 
			
		||||
                auth_user.to_string()
 | 
			
		||||
            )
 | 
			
		||||
            if app_service:
 | 
			
		||||
                rooms = yield self.store.get_app_service_rooms(app_service)
 | 
			
		||||
                room_ids = set(r.room_id for r in rooms)
 | 
			
		||||
            else:
 | 
			
		||||
                room_ids = yield rm_handler.get_joined_rooms_for_user(auth_user)
 | 
			
		||||
 | 
			
		||||
            if timeout:
 | 
			
		||||
                # If they've set a timeout set a minimum limit.
 | 
			
		||||
 | 
			
		||||
@ -557,15 +557,9 @@ class RoomMemberHandler(BaseHandler):
 | 
			
		||||
        """Returns a list of roomids that the user has any of the given
 | 
			
		||||
        membership states in."""
 | 
			
		||||
 | 
			
		||||
        app_service = yield self.store.get_app_service_by_user_id(
 | 
			
		||||
            user.to_string()
 | 
			
		||||
        rooms = yield self.store.get_rooms_for_user(
 | 
			
		||||
            user.to_string(),
 | 
			
		||||
        )
 | 
			
		||||
        if app_service:
 | 
			
		||||
            rooms = yield self.store.get_app_service_rooms(app_service)
 | 
			
		||||
        else:
 | 
			
		||||
            rooms = yield self.store.get_rooms_for_user(
 | 
			
		||||
                user.to_string(),
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
        # For some reason the list of events contains duplicates
 | 
			
		||||
        # TODO(paul): work out why because I really don't think it should
 | 
			
		||||
 | 
			
		||||
@ -96,9 +96,18 @@ class SyncHandler(BaseHandler):
 | 
			
		||||
                return self.current_sync_for_user(sync_config, since_token)
 | 
			
		||||
 | 
			
		||||
            rm_handler = self.hs.get_handlers().room_member_handler
 | 
			
		||||
            room_ids = yield rm_handler.get_joined_rooms_for_user(
 | 
			
		||||
                sync_config.user
 | 
			
		||||
 | 
			
		||||
            app_service = yield self.store.get_app_service_by_user_id(
 | 
			
		||||
                sync_config.user.to_string()
 | 
			
		||||
            )
 | 
			
		||||
            if app_service:
 | 
			
		||||
                rooms = yield self.store.get_app_service_rooms(app_service)
 | 
			
		||||
                room_ids = set(r.room_id for r in rooms)
 | 
			
		||||
            else:
 | 
			
		||||
                room_ids = yield rm_handler.get_joined_rooms_for_user(
 | 
			
		||||
                    sync_config.user
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
            result = yield self.notifier.wait_for_events(
 | 
			
		||||
                sync_config.user, room_ids,
 | 
			
		||||
                sync_config.filter, timeout, current_sync_callback
 | 
			
		||||
@ -229,7 +238,16 @@ class SyncHandler(BaseHandler):
 | 
			
		||||
        logger.debug("Typing %r", typing_by_room)
 | 
			
		||||
 | 
			
		||||
        rm_handler = self.hs.get_handlers().room_member_handler
 | 
			
		||||
        room_ids = yield rm_handler.get_joined_rooms_for_user(sync_config.user)
 | 
			
		||||
        app_service = yield self.store.get_app_service_by_user_id(
 | 
			
		||||
            sync_config.user.to_string()
 | 
			
		||||
        )
 | 
			
		||||
        if app_service:
 | 
			
		||||
            rooms = yield self.store.get_app_service_rooms(app_service)
 | 
			
		||||
            room_ids = set(r.room_id for r in rooms)
 | 
			
		||||
        else:
 | 
			
		||||
            room_ids = yield rm_handler.get_joined_rooms_for_user(
 | 
			
		||||
                sync_config.user
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
        # TODO (mjark): Does public mean "published"?
 | 
			
		||||
        published_rooms = yield self.store.get_rooms(is_public=True)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user