MM-58255 Ensure remote users do not get valid email addresses (#27421)

* remote users don't get valid email addresses; remote users cannot have access tokens

* block notification emails for remote users

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Doug Lauder
2024-06-25 09:26:08 -04:00
коммит произвёл GitHub
родитель 12ad9f3fe2
Коммит 6773d13dee
7 изменённых файлов: 41 добавлений и 15 удалений

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

@@ -267,7 +267,7 @@ func (scs *Service) insertSyncUser(rctx request.CTX, user *model.User, _ *model.
}
user.Username = mungUsername(user.Username, rc.Name, suffix, model.UserNameMaxLength)
user.Email = mungEmail(rc.Name, model.UserEmailMaxLength)
user.Email = model.NewId()
if userSaved, err = scs.server.GetStore().User().Save(rctx, user); err != nil {
field, ok := isConflictError(err)
@@ -321,7 +321,7 @@ func (scs *Service) updateSyncUser(rctx request.CTX, patch *model.UserPatch, use
suffix = strconv.FormatInt(int64(i), 10)
}
user.Username = mungUsername(user.Username, rc.Name, suffix, model.UserNameMaxLength)
user.Email = mungEmail(rc.Name, model.UserEmailMaxLength)
user.Email = model.NewId()
if update, err = scs.server.GetStore().User().Update(rctx, user, false); err != nil {
field, ok := isConflictError(err)

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

@@ -95,15 +95,6 @@ func mungUsername(username string, remotename string, suffix string, maxLen int)
return fmt.Sprintf("%s%s%s:%s%s", username, suffix, userEllipses, remotename, remoteEllipses)
}
// mungEmail creates a unique email address using a UID and remote name.
func mungEmail(remotename string, maxLen int) string {
s := fmt.Sprintf("%s@%s", model.NewId(), remotename)
if len(s) > maxLen {
s = s[:maxLen]
}
return s
}
func isConflictError(err error) (string, bool) {
if err == nil {
return "", false