diff options
Diffstat (limited to 'app/user.go')
-rw-r--r-- | app/user.go | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/app/user.go b/app/user.go index c34bf87e3..a0cb2a49f 100644 --- a/app/user.go +++ b/app/user.go @@ -858,13 +858,37 @@ func UpdateUserAsUser(user *model.User, siteURL string, asAdmin bool) (*model.Us SanitizeProfile(updatedUser, asAdmin) + sendUpdatedUserEvent(updatedUser) + + return updatedUser, nil +} + +func PatchUser(userId string, patch *model.UserPatch, siteURL string, asAdmin bool) (*model.User, *model.AppError) { + user, err := GetUser(userId) + if err != nil { + return nil, err + } + + user.Patch(patch) + + updatedUser, err := UpdateUser(user, siteURL, true) + if err != nil { + return nil, err + } + + SanitizeProfile(updatedUser, asAdmin) + + sendUpdatedUserEvent(updatedUser) + + return updatedUser, nil +} + +func sendUpdatedUserEvent(user *model.User) { omitUsers := make(map[string]bool, 1) - omitUsers[updatedUser.Id] = true + omitUsers[user.Id] = true message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_USER_UPDATED, "", "", "", omitUsers) - message.Add("user", updatedUser) + message.Add("user", user) go Publish(message) - - return updatedUser, nil } func UpdateUser(user *model.User, siteURL string, sendNotifications bool) (*model.User, *model.AppError) { |