Send existing room tags down sync on join

When a user joined a room any existing tags were not sent down the sync
stream. Ordinarily this isn't a problem because the user needs to be in
the room to have set tags in it, however synapse will sometimes add tags
for a user to a room, e.g. for server notices, which need to come down
sync.
This commit is contained in:
Erik Johnston 2018-09-06 16:46:51 +01:00
parent 654324eded
commit 7baf66ef5d
1 changed files with 8 additions and 0 deletions

View File

@ -1575,6 +1575,14 @@ class SyncHandler(object):
newly_joined_room=newly_joined,
)
# When we join the room (or the client requests full_state), we should
# send down any existing tags. Usually the user won't have tags in a
# newly joined room, unless either a) they've joined before or b) the
# tag was added by synapse e.g. for server notice rooms.
if full_state:
user_id = sync_result_builder.sync_config.user.to_string()
tags = yield self.store.get_tags_for_room(user_id, room_id)
account_data_events = []
if tags is not None:
account_data_events.append({