MM-32133 shared channel username collisions (#17347)

Support for handling username collisions between remote clusters. Users belonging to remote clusters have their username changed to include the remote name e.g. wiggin becomes wiggin:mattermost.

@mentions are also modified so the munged username is replaced with the original username when the post is sync'd with the remote the user belongs to.

When adding remote users:
- append the remote name to the username with colon separator
- append the remote name to the email address with colon separator
- store the original username and email address in user props
- when resolving @mentions replace with the stored original username
Этот коммит содержится в:
Doug Lauder
2021-04-13 10:40:12 -04:00
коммит произвёл GitHub
родитель 869da7a78b
Коммит f69cb38249
28 изменённых файлов: 544 добавлений и 147 удалений

Просмотреть файл

@@ -315,7 +315,7 @@ func (scs *Service) updateForRemote(task syncTask, rc *model.RemoteCluster) erro
// All posts were filtered out, meaning no need to send them. Fast forward SharedChannelRemote's NextSyncAt.
scs.updateNextSyncForRemote(scr.Id, rc, nextSince)
// everything was filtered out, nothing to send.
// if there are more posts eligible to sync then schedule another sync
if repeat {
scs.addTask(newSyncTask(task.channelId, task.remoteId, nil))
}