summaryrefslogtreecommitdiffstats
path: root/app/user.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2018-04-20 08:44:18 -0400
committerGitHub <noreply@github.com>2018-04-20 08:44:18 -0400
commit283f34b9c6d207f0a103e7b4c7f6da2c7481c3ef (patch)
tree9a9d0dfb9f536d37e9817e3407c32e7ec0c11cdf /app/user.go
parent7987c95fcd7f7a9e6d4d174be403bf170f7b9115 (diff)
downloadchat-283f34b9c6d207f0a103e7b4c7f6da2c7481c3ef.tar.gz
chat-283f34b9c6d207f0a103e7b4c7f6da2c7481c3ef.tar.bz2
chat-283f34b9c6d207f0a103e7b4c7f6da2c7481c3ef.zip
MM-10007 Send an admin and regular WS events when a user is updated (#8588)
* Add user.DeepCopy() function * Add omit admins/non-admins to WS broadcast and use for updating users * Updates per feedback and adding unit test for ShouldSendEvent
Diffstat (limited to 'app/user.go')
-rw-r--r--app/user.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/app/user.go b/app/user.go
index 80c8b6ef2..34076555e 100644
--- a/app/user.go
+++ b/app/user.go
@@ -1021,10 +1021,17 @@ func (a *App) UpdateUserAuth(userId string, userAuth *model.UserAuth) (*model.Us
}
func (a *App) sendUpdatedUserEvent(user model.User) {
- a.SanitizeProfile(&user, false)
+ adminCopyOfUser := user.DeepCopy()
+ a.SanitizeProfile(adminCopyOfUser, true)
+ adminMessage := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_USER_UPDATED, "", "", "", nil)
+ adminMessage.Add("user", *adminCopyOfUser)
+ adminMessage.Broadcast.ContainsSensitiveData = true
+ a.Publish(adminMessage)
+ a.SanitizeProfile(&user, false)
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_USER_UPDATED, "", "", "", nil)
message.Add("user", user)
+ message.Broadcast.ContainsSanitizedData = true
a.Publish(message)
}