summaryrefslogtreecommitdiffstats
path: root/model/user.go
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2018-02-06 17:25:53 +0000
committerGeorge Goldberg <george@gberg.me>2018-02-06 17:25:53 +0000
commit7941c30117efe1b957ac0458c2f0479e3824196d (patch)
treedf791632a9dc790a6f73dec53aae3ba919ebda63 /model/user.go
parente1cd64613591cf5a990442a69ebf188258bd0cb5 (diff)
parent034dbc07e3068c482e654b6a1a8fcbe4b01c44f3 (diff)
downloadchat-7941c30117efe1b957ac0458c2f0479e3824196d.tar.gz
chat-7941c30117efe1b957ac0458c2f0479e3824196d.tar.bz2
chat-7941c30117efe1b957ac0458c2f0479e3824196d.zip
Merge branch 'master' into advanced-permissions-phase-1
Diffstat (limited to 'model/user.go')
-rw-r--r--model/user.go109
1 files changed, 36 insertions, 73 deletions
diff --git a/model/user.go b/model/user.go
index 556ebb1f7..d915307ad 100644
--- a/model/user.go
+++ b/model/user.go
@@ -162,6 +162,14 @@ func InvalidUserError(fieldName string, userId string) *AppError {
return NewAppError("User.IsValid", id, nil, details, http.StatusBadRequest)
}
+func NormalizeUsername(username string) string {
+ return strings.ToLower(username)
+}
+
+func NormalizeEmail(email string) string {
+ return strings.ToLower(email)
+}
+
// 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.
@@ -178,8 +186,8 @@ func (u *User) PreSave() {
u.AuthData = nil
}
- u.Username = strings.ToLower(u.Username)
- u.Email = strings.ToLower(u.Email)
+ u.Username = NormalizeUsername(u.Username)
+ u.Email = NormalizeEmail(u.Email)
u.CreateAt = GetMillis()
u.UpdateAt = u.CreateAt
@@ -207,8 +215,8 @@ func (u *User) PreSave() {
// PreUpdate should be run before updating the user in the db.
func (u *User) PreUpdate() {
- u.Username = strings.ToLower(u.Username)
- u.Email = strings.ToLower(u.Email)
+ u.Username = NormalizeUsername(u.Username)
+ u.Email = NormalizeEmail(u.Email)
u.UpdateAt = GetMillis()
if u.AuthData != nil && *u.AuthData == "" {
@@ -298,30 +306,18 @@ func (u *User) Patch(patch *UserPatch) {
// ToJson convert a User to a json string
func (u *User) ToJson() string {
- b, err := json.Marshal(u)
- if err != nil {
- return ""
- } else {
- return string(b)
- }
+ b, _ := json.Marshal(u)
+ return string(b)
}
func (u *UserPatch) ToJson() string {
- b, err := json.Marshal(u)
- if err != nil {
- return ""
- } else {
- return string(b)
- }
+ b, _ := json.Marshal(u)
+ return string(b)
}
func (u *UserAuth) ToJson() string {
- b, err := json.Marshal(u)
- if err != nil {
- return ""
- } else {
- return string(b)
- }
+ b, _ := json.Marshal(u)
+ return string(b)
}
// Generate a valid strong etag so the browser can cache the results
@@ -483,76 +479,43 @@ func (u *User) IsSAMLUser() bool {
// UserFromJson will decode the input and return a User
func UserFromJson(data io.Reader) *User {
- decoder := json.NewDecoder(data)
- var user User
- err := decoder.Decode(&user)
- if err == nil {
- return &user
- } else {
- return nil
- }
+ var user *User
+ json.NewDecoder(data).Decode(&user)
+ return user
}
func UserPatchFromJson(data io.Reader) *UserPatch {
- decoder := json.NewDecoder(data)
- var user UserPatch
- err := decoder.Decode(&user)
- if err == nil {
- return &user
- } else {
- return nil
- }
+ var user *UserPatch
+ json.NewDecoder(data).Decode(&user)
+ return user
}
func UserAuthFromJson(data io.Reader) *UserAuth {
- decoder := json.NewDecoder(data)
- var user UserAuth
- err := decoder.Decode(&user)
- if err == nil {
- return &user
- } else {
- return nil
- }
+ var user *UserAuth
+ json.NewDecoder(data).Decode(&user)
+ return user
}
func UserMapToJson(u map[string]*User) string {
- b, err := json.Marshal(u)
- if err != nil {
- return ""
- } else {
- return string(b)
- }
+ b, _ := json.Marshal(u)
+ return string(b)
}
func UserMapFromJson(data io.Reader) map[string]*User {
- decoder := json.NewDecoder(data)
var users map[string]*User
- err := decoder.Decode(&users)
- if err == nil {
- return users
- } else {
- return nil
- }
+ json.NewDecoder(data).Decode(&users)
+ return users
}
func UserListToJson(u []*User) string {
- b, err := json.Marshal(u)
- if err != nil {
- return ""
- } else {
- return string(b)
- }
+ b, _ := json.Marshal(u)
+ return string(b)
}
func UserListFromJson(data io.Reader) []*User {
- decoder := json.NewDecoder(data)
var users []*User
- err := decoder.Decode(&users)
- if err == nil {
- return users
- } else {
- return nil
- }
+ json.NewDecoder(data).Decode(&users)
+ return users
}
// HashPassword generates a hash using the bcrypt.GenerateFromPassword
@@ -603,7 +566,7 @@ func IsValidUsername(s string) bool {
}
func CleanUsername(s string) string {
- s = strings.ToLower(strings.Replace(s, " ", "-", -1))
+ s = NormalizeUsername(strings.Replace(s, " ", "-", -1))
for _, value := range reservedName {
if s == value {