summaryrefslogtreecommitdiffstats
path: root/model/user.go
diff options
context:
space:
mode:
authorgstraube <gstraube@users.noreply.github.com>2017-04-17 16:45:51 +0200
committerChristopher Speller <crspeller@gmail.com>2017-04-17 10:45:51 -0400
commit160a66c9520d03863b369fea7441fa8f1908ca27 (patch)
tree3bc89f4ef447378d299c00d9fa11df6dd06fe845 /model/user.go
parentf9ac95c920174728f9f28d273d6ffcd5493faafb (diff)
downloadchat-160a66c9520d03863b369fea7441fa8f1908ca27.tar.gz
chat-160a66c9520d03863b369fea7441fa8f1908ca27.tar.bz2
chat-160a66c9520d03863b369fea7441fa8f1908ca27.zip
[PLT-6102] Increase maximum length of field User.Position (#6044)
* Increase maximum length of field User.Position * Rename method
Diffstat (limited to 'model/user.go')
-rw-r--r--model/user.go40
1 files changed, 24 insertions, 16 deletions
diff --git a/model/user.go b/model/user.go
index a4a37b387..2c2ba734b 100644
--- a/model/user.go
+++ b/model/user.go
@@ -26,13 +26,12 @@ const (
PUSH_NOTIFY_PROP = "push"
EMAIL_NOTIFY_PROP = "email"
- DEFAULT_LOCALE = "en"
- USER_AUTH_SERVICE_EMAIL = "email"
- USER_AUTH_SERVICE_USERNAME = "username"
+ DEFAULT_LOCALE = "en"
+ USER_AUTH_SERVICE_EMAIL = "email"
USER_EMAIL_MAX_LENGTH = 128
USER_NICKNAME_MAX_RUNES = 64
- USER_POSITION_MAX_RUNES = 35
+ USER_POSITION_MAX_RUNES = 64
USER_FIRST_NAME_MAX_RUNES = 64
USER_LAST_NAME_MAX_RUNES = 64
USER_AUTH_DATA_MAX_LENGTH = 128
@@ -85,56 +84,65 @@ type UserPatch struct {
func (u *User) IsValid() *AppError {
if len(u.Id) != 26 {
- return NewAppError("User.IsValid", "model.user.is_valid.id.app_error", nil, "", http.StatusBadRequest)
+ return InvalidUserError("id", "")
}
if u.CreateAt == 0 {
- return NewAppError("User.IsValid", "model.user.is_valid.create_at.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("create_at", u.Id)
}
if u.UpdateAt == 0 {
- return NewAppError("User.IsValid", "model.user.is_valid.update_at.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("update_at", u.Id)
}
if !IsValidUsername(u.Username) {
- return NewAppError("User.IsValid", "model.user.is_valid.username.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("username", u.Id)
}
if len(u.Email) > USER_EMAIL_MAX_LENGTH || len(u.Email) == 0 {
- return NewAppError("User.IsValid", "model.user.is_valid.email.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("email", u.Id)
}
if utf8.RuneCountInString(u.Nickname) > USER_NICKNAME_MAX_RUNES {
- return NewAppError("User.IsValid", "model.user.is_valid.nickname.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("nickname", u.Id)
}
if utf8.RuneCountInString(u.Position) > USER_POSITION_MAX_RUNES {
- return NewAppError("User.IsValid", "model.user.is_valid.position.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("position", u.Id)
}
if utf8.RuneCountInString(u.FirstName) > USER_FIRST_NAME_MAX_RUNES {
- return NewAppError("User.IsValid", "model.user.is_valid.first_name.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("first_name", u.Id)
}
if utf8.RuneCountInString(u.LastName) > USER_LAST_NAME_MAX_RUNES {
- return NewAppError("User.IsValid", "model.user.is_valid.last_name.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("last_name", u.Id)
}
if u.AuthData != nil && len(*u.AuthData) > USER_AUTH_DATA_MAX_LENGTH {
- return NewAppError("User.IsValid", "model.user.is_valid.auth_data.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("auth_data", u.Id)
}
if u.AuthData != nil && len(*u.AuthData) > 0 && len(u.AuthService) == 0 {
- return NewAppError("User.IsValid", "model.user.is_valid.auth_data_type.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("auth_data_type", u.Id)
}
if len(u.Password) > 0 && u.AuthData != nil && len(*u.AuthData) > 0 {
- return NewAppError("User.IsValid", "model.user.is_valid.auth_data_pwd.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("auth_data_pwd", u.Id)
}
return nil
}
+func InvalidUserError(fieldName string, userId string) *AppError {
+ id := fmt.Sprintf("model.user.is_valid.%s.app_error", fieldName)
+ details := ""
+ if userId != "" {
+ details = "user_id=" + userId
+ }
+ return NewAppError("User.IsValid", id, nil, details, http.StatusBadRequest)
+}
+
// PreSave will set the Id and Username if missing. It will also fill
// in the CreateAt, UpdateAt times. It will also hash the password. It should
// be run before saving the user to the db.