diff options
author | George Goldberg <george@gberg.me> | 2017-01-31 13:04:17 +0000 |
---|---|---|
committer | enahum <nahumhbl@gmail.com> | 2017-01-31 10:04:17 -0300 |
commit | 67739cb516309e06a7cb08cc5807140ac9af9b13 (patch) | |
tree | 7ebdcc933cbb338fc02e39ab6600e7e8bb3651dd /app/user.go | |
parent | c0c6ef47d99994ae5fb20c7fb429411b6f8eb328 (diff) | |
download | chat-67739cb516309e06a7cb08cc5807140ac9af9b13.tar.gz chat-67739cb516309e06a7cb08cc5807140ac9af9b13.tar.bz2 chat-67739cb516309e06a7cb08cc5807140ac9af9b13.zip |
PLT-5365 Import of basic user properties. (#5231)
Diffstat (limited to 'app/user.go')
-rw-r--r-- | app/user.go | 59 |
1 files changed, 35 insertions, 24 deletions
diff --git a/app/user.go b/app/user.go index 848f7c9fc..5422d0b67 100644 --- a/app/user.go +++ b/app/user.go @@ -173,9 +173,23 @@ func CreateUser(user *model.User) (*model.User, *model.AppError) { } } - user.MakeNonNil() user.Locale = *utils.Cfg.LocalizationSettings.DefaultClientLocale + if ruser, err := createUser(user); err != nil { + return nil, err + } else { + // This message goes to everyone, so the teamId, channelId and userId are irrelevant + message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_NEW_USER, "", "", "", nil) + message.Add("user_id", ruser.Id) + go Publish(message) + + return ruser, nil + } +} + +func createUser(user *model.User) (*model.User, *model.AppError) { + user.MakeNonNil() + if err := utils.IsPasswordValid(user.Password); user.AuthService == "" && err != nil { return nil, err } @@ -199,11 +213,6 @@ func CreateUser(user *model.User) (*model.User, *model.AppError) { ruser.Sanitize(map[string]bool{}) - // This message goes to everyone, so the teamId, channelId and userId are irrelevant - message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_NEW_USER, "", "", "", nil) - message.Add("user_id", ruser.Id) - go Publish(message) - return ruser, nil } } @@ -716,7 +725,7 @@ func SanitizeProfile(user *model.User, asAdmin bool) { } func UpdateUserAsUser(user *model.User, siteURL string, asAdmin bool) (*model.User, *model.AppError) { - updatedUser, err := UpdateUser(user, siteURL) + updatedUser, err := UpdateUser(user, siteURL, true) if err != nil { return nil, err } @@ -732,36 +741,38 @@ func UpdateUserAsUser(user *model.User, siteURL string, asAdmin bool) (*model.Us return updatedUser, nil } -func UpdateUser(user *model.User, siteURL string) (*model.User, *model.AppError) { +func UpdateUser(user *model.User, siteURL string, sendNotifications bool) (*model.User, *model.AppError) { if result := <-Srv.Store.User().Update(user, false); result.Err != nil { return nil, result.Err } else { rusers := result.Data.([2]*model.User) - if rusers[0].Email != rusers[1].Email { - go func() { - if err := SendEmailChangeEmail(rusers[1].Email, rusers[0].Email, rusers[0].Locale, siteURL); err != nil { - l4g.Error(err.Error()) + if sendNotifications { + if rusers[0].Email != rusers[1].Email { + go func() { + if err := SendEmailChangeEmail(rusers[1].Email, rusers[0].Email, rusers[0].Locale, siteURL); err != nil { + l4g.Error(err.Error()) + } + }() + + if utils.Cfg.EmailSettings.RequireEmailVerification { + go func() { + if err := SendEmailChangeVerifyEmail(rusers[0].Id, rusers[0].Email, rusers[0].Locale, siteURL); err != nil { + l4g.Error(err.Error()) + } + }() } - }() + } - if utils.Cfg.EmailSettings.RequireEmailVerification { + if rusers[0].Username != rusers[1].Username { go func() { - if err := SendEmailChangeVerifyEmail(rusers[0].Id, rusers[0].Email, rusers[0].Locale, siteURL); err != nil { + if err := SendChangeUsernameEmail(rusers[1].Username, rusers[0].Username, rusers[0].Email, rusers[0].Locale, siteURL); err != nil { l4g.Error(err.Error()) } }() } } - if rusers[0].Username != rusers[1].Username { - go func() { - if err := SendChangeUsernameEmail(rusers[1].Username, rusers[0].Username, rusers[0].Email, rusers[0].Locale, siteURL); err != nil { - l4g.Error(err.Error()) - } - }() - } - InvalidateCacheForUser(user.Id) return rusers[0], nil @@ -778,7 +789,7 @@ func UpdateUserNotifyProps(userId string, props map[string]string, siteURL strin user.NotifyProps = props var ruser *model.User - if ruser, err = UpdateUser(user, siteURL); err != nil { + if ruser, err = UpdateUser(user, siteURL, true); err != nil { return nil, err } |