summary refs log tree commit diff
path: root/synapse/handlers
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2020-04-21 11:03:32 +0100
committerRichard van der Hoff <richard@matrix.org>2020-04-21 11:03:32 +0100
commit8288218b2938b695b874d24a6ec46192c65b3826 (patch)
treebb17f50cb5d5060374a957143d42fc39ff06d461 /synapse/handlers
parentRevert recent merges of #7289 into matrix-org-hotfixes (diff)
parentSupport GET account_data requests on a worker (#7311) (diff)
downloadsynapse-8288218b2938b695b874d24a6ec46192c65b3826.tar.xz
Merge remote-tracking branch 'origin/release-v1.12.4' into matrix-org-hotfixes
Diffstat (limited to 'synapse/handlers')
-rw-r--r--synapse/handlers/device.py14
-rw-r--r--synapse/handlers/sync.py7
2 files changed, 18 insertions, 3 deletions
diff --git a/synapse/handlers/device.py b/synapse/handlers/device.py

index a514c30714..993499f446 100644 --- a/synapse/handlers/device.py +++ b/synapse/handlers/device.py
@@ -125,8 +125,14 @@ class DeviceWorkerHandler(BaseHandler): users_who_share_room = yield self.store.get_users_who_share_room_with_user( user_id ) + + tracked_users = set(users_who_share_room) + + # Always tell the user about their own devices + tracked_users.add(user_id) + changed = yield self.store.get_users_whose_devices_changed( - from_token.device_list_key, users_who_share_room + from_token.device_list_key, tracked_users ) # Then work out if any users have since joined @@ -456,7 +462,11 @@ class DeviceHandler(DeviceWorkerHandler): room_ids = yield self.store.get_rooms_for_user(user_id) - yield self.notifier.on_new_event("device_list_key", position, rooms=room_ids) + # specify the user ID too since the user should always get their own device list + # updates, even if they aren't in any rooms. + yield self.notifier.on_new_event( + "device_list_key", position, users=[user_id], rooms=room_ids + ) if hosts: logger.info( diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py
index c64f1994bd..55498c25b4 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py
@@ -1146,9 +1146,14 @@ class SyncHandler(object): user_id ) + tracked_users = set(users_who_share_room) + + # Always tell the user about their own devices + tracked_users.add(user_id) + # Step 1a, check for changes in devices of users we share a room with users_that_have_changed = await self.store.get_users_whose_devices_changed( - since_token.device_list_key, users_who_share_room + since_token.device_list_key, tracked_users ) # Step 1b, check for newly joined rooms