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 удалений

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

@@ -346,7 +346,7 @@ func (u *User) IsValid() *AppError {
}
}
if len(u.Email) > UserEmailMaxLength || u.Email == "" || !IsValidEmail(u.Email) {
if len(u.Email) > UserEmailMaxLength || u.Email == "" || (!IsValidEmail(u.Email) && !u.IsRemote()) {
return InvalidUserError("email", u.Id, u.Email)
}

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

@@ -9,9 +9,10 @@ import (
"strings"
"testing"
"github.com/mattermost/mattermost/server/public/shared/mlog"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/shared/mlog"
)
func TestUserDeepCopy(t *testing.T) {
@@ -117,6 +118,13 @@ func TestUserIsValid(t *testing.T) {
user.LastName = ""
require.Nil(t, user.IsValid())
user.Email = NewId()
appErr = user.IsValid()
require.True(t, HasExpectedUserIsValidError(appErr, "email", user.Id, user.Email), "expected user is valid error: %s", appErr.Error())
user.RemoteId = NewString(NewId())
require.Nil(t, user.IsValid())
user.FirstName = strings.Repeat("a", 65)
appErr = user.IsValid()
require.True(t, HasExpectedUserIsValidError(appErr, "first_name", user.Id, user.FirstName), "expected user is valid error: %s", appErr.Error())