Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Merge pull request #232 from matrix-org/erikj/appservice_joined_rooms
Browse files Browse the repository at this point in the history
Don't get apservice interested rooms in RoomHandler.get_joined_rooms_for_users
  • Loading branch information
erikjohnston committed Aug 19, 2015
2 parents 40da1f2 + daa0184 commit 09d23b6
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 12 deletions.
10 changes: 9 additions & 1 deletion synapse/handlers/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,15 @@ def get_stream(self, auth_user_id, pagin_config, timeout=0,
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.
Expand Down
10 changes: 2 additions & 8 deletions synapse/handlers/room.py
Original file line number Diff line number Diff line change
Expand Up @@ -557,15 +557,9 @@ def get_joined_rooms_for_user(self, user):
"""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
Expand Down
24 changes: 21 additions & 3 deletions synapse/handlers/sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,18 @@ def current_sync_callback(before_token, after_token):
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
Expand Down Expand Up @@ -229,7 +238,16 @@ def incremental_sync_with_gap(self, sync_config, since_token):
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)
Expand Down

0 comments on commit 09d23b6

Please sign in to comment.