Prevent User.Timezone field to overflow DB column capacity (#17220)

Этот коммит содержится в:
Claudio Costa
2021-03-25 11:38:43 +01:00
коммит произвёл GitHub
родитель 58069ff7dc
Коммит 28df047d92
3 изменённых файлов: 23 добавлений и 0 удалений

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

@@ -56,6 +56,7 @@ const (
USER_NAME_MIN_LENGTH = 1
USER_PASSWORD_MAX_LENGTH = 72
USER_LOCALE_MAX_LENGTH = 5
USER_TIMEZONE_MAX_RUNES = 256
)
//msgp:tuple User
@@ -312,6 +313,14 @@ func (u *User) IsValid() *AppError {
return InvalidUserError("locale", u.Id)
}
if len(u.Timezone) > 0 {
if tzJSON, err := json.Marshal(u.Timezone); err != nil {
return NewAppError("User.IsValid", "model.user.is_valid.marshal.app_error", nil, err.Error(), http.StatusInternalServerError)
} else if utf8.RuneCount(tzJSON) > USER_TIMEZONE_MAX_RUNES {
return InvalidUserError("timezone_limit", u.Id)
}
}
return nil
}