diff --git a/api/user.go b/api/user.go index c871d7c795..774ceddbf5 100644 --- a/api/user.go +++ b/api/user.go @@ -114,7 +114,7 @@ func createUser(c *Context, w http.ResponseWriter, r *http.Request) { sendWelcomeEmail = false } - if len(user.AuthData) > 0 && len(user.AuthService) > 0 { + if user.IsSSOUser() { user.EmailVerified = true } diff --git a/model/user.go b/model/user.go index 871d1bf2d6..4365f47d2d 100644 --- a/model/user.go +++ b/model/user.go @@ -326,6 +326,13 @@ func IsInRole(userRoles string, inRole string) bool { return false } +func (u *User) IsSSOUser() bool { + if len(u.AuthData) != 0 && len(u.AuthService) != 0 { + return true + } + return false +} + func (u *User) PreExport() { u.Password = "" u.AuthData = "" diff --git a/store/sql_user_store.go b/store/sql_user_store.go index 3347df08bf..686949a4d2 100644 --- a/store/sql_user_store.go +++ b/store/sql_user_store.go @@ -140,7 +140,9 @@ func (us SqlUserStore) Update(user *model.User, allowActiveUpdate bool) StoreCha user.DeleteAt = oldUser.DeleteAt } - if user.Email != oldUser.Email { + if user.IsSSOUser() { + user.Email = oldUser.Email + } else if user.Email != oldUser.Email { user.EmailVerified = false } diff --git a/web/react/components/user_settings/user_settings_general.jsx b/web/react/components/user_settings/user_settings_general.jsx index 9f0c161940..1bfae69308 100644 --- a/web/react/components/user_settings/user_settings_general.jsx +++ b/web/react/components/user_settings/user_settings_general.jsx @@ -451,44 +451,60 @@ export default class UserSettingsGeneralTab extends React.Component { } } - inputs.push( -