diff options
author | Erik Johnston <erik@matrix.org> | 2015-08-19 13:50:40 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2015-08-19 13:50:40 +0100 |
commit | 09d23b620951ae07c7aa7ff99fe96a0b173d1397 (patch) | |
tree | 3a8cc39f417fcaad2c88da5782536d99e495c124 /synapse/handlers/sync.py | |
parent | Remove an access token log line (diff) | |
parent | Don't get apservice interested rooms in RoomHandler.get_joined_rooms_for_users (diff) | |
download | synapse-09d23b620951ae07c7aa7ff99fe96a0b173d1397.tar.xz |
Merge pull request #232 from matrix-org/erikj/appservice_joined_rooms
Don't get apservice interested rooms in RoomHandler.get_joined_rooms_for_users
Diffstat (limited to 'synapse/handlers/sync.py')
-rw-r--r-- | synapse/handlers/sync.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py index 7206ae23d7..353a416054 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py @@ -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) |