summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorDavid Robertson <davidr@element.io>2021-10-08 16:57:36 +0100
committerDavid Robertson <davidr@element.io>2021-10-08 17:18:00 +0100
commit18df1c142adea722d91abf27520ae6bac9f915ef (patch)
treeb60fa994fd7285eec0323b635f4705498d462142 /synapse
parentchanged -> joined (diff)
downloadsynapse-github/dmr/user-dir/dont-remove-local-users.tar.xz
Diffstat (limited to 'synapse')
-rw-r--r--synapse/handlers/user_directory.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/synapse/handlers/user_directory.py b/synapse/handlers/user_directory.py

index 22905eda12..de7ecd42b8 100644 --- a/synapse/handlers/user_directory.py +++ b/synapse/handlers/user_directory.py
@@ -413,11 +413,13 @@ class UserDirectoryHandler(StateDeltasHandler): # Remove user from sharing tables await self.store.remove_user_who_share_room(user_id, room_id) - # Are they still in any rooms? If not, remove them entirely. - rooms_user_is_in = await self.store.get_user_dir_rooms_user_is_in(user_id) + # If they're a remote user and not in any rooms we can see, + # remove their user_directory entry. + if not self.is_mine_id(user_id): + rooms_user_is_in = await self.store.get_user_dir_rooms_user_is_in(user_id) - if len(rooms_user_is_in) == 0: - await self.store.remove_from_user_dir(user_id) + if len(rooms_user_is_in) == 0: + await self.store.remove_from_user_dir(user_id) async def _handle_possible_remote_profile_change( self,