aboutsummaryrefslogtreecommitdiffhomepage
path: root/model/user.go
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2017-12-24 18:04:34 -0800
committerGravatar Frédéric Guillot <fred@miniflux.net>2017-12-24 18:04:34 -0800
commitd5b8f2fb8839189bdf6893da0f86f3bb26001d3d (patch)
treea62d6ac75f2ede87f750a7083f7ef8e7a5308ab2 /model/user.go
parent3f473e4a0910d95bc5adb57d367f6f3a060de08d (diff)
Improve API
Diffstat (limited to 'model/user.go')
-rw-r--r--model/user.go26
1 files changed, 11 insertions, 15 deletions
diff --git a/model/user.go b/model/user.go
index 4889dc4..8026a36 100644
--- a/model/user.go
+++ b/model/user.go
@@ -37,21 +37,17 @@ func (u User) ValidateUserCreation() error {
return u.ValidatePassword()
}
-// ValidateUserModification validates user for modification.
+// ValidateUserModification validates user modification payload.
func (u User) ValidateUserModification() error {
- if u.ID <= 0 {
- return errors.New("The ID is mandatory")
+ if u.Theme != "" {
+ return ValidateTheme(u.Theme)
}
- if u.Username == "" {
- return errors.New("The username is mandatory")
- }
-
- if err := u.ValidatePassword(); err != nil {
- return err
+ if u.Password != "" {
+ return u.ValidatePassword()
}
- return ValidateTheme(u.Theme)
+ return nil
}
// ValidateUserLogin validates user credential requirements.
@@ -78,11 +74,11 @@ func (u User) ValidatePassword() error {
// Merge update the current user with another user.
func (u *User) Merge(override *User) {
- if u.Username != override.Username {
+ if override.Username != "" && u.Username != override.Username {
u.Username = override.Username
}
- if u.Password != override.Password {
+ if override.Password != "" && u.Password != override.Password {
u.Password = override.Password
}
@@ -90,15 +86,15 @@ func (u *User) Merge(override *User) {
u.IsAdmin = override.IsAdmin
}
- if u.Theme != override.Theme {
+ if override.Theme != "" && u.Theme != override.Theme {
u.Theme = override.Theme
}
- if u.Language != override.Language {
+ if override.Language != "" && u.Language != override.Language {
u.Language = override.Language
}
- if u.Timezone != override.Timezone {
+ if override.Timezone != "" && u.Timezone != override.Timezone {
u.Timezone = override.Timezone
}
}