aboutsummaryrefslogtreecommitdiff
path: root/routers/user/setting.go
diff options
context:
space:
mode:
Diffstat (limited to 'routers/user/setting.go')
-rw-r--r--routers/user/setting.go54
1 files changed, 29 insertions, 25 deletions
diff --git a/routers/user/setting.go b/routers/user/setting.go
index 8afc56ac..c62a123d 100644
--- a/routers/user/setting.go
+++ b/routers/user/setting.go
@@ -5,6 +5,8 @@
package user
import (
+ "errors"
+ "fmt"
"io/ioutil"
"strings"
@@ -47,11 +49,11 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateProfileForm) {
}
// Check if user name has been changed.
- if ctx.User.Name != form.UserName {
- if err := models.ChangeUserName(ctx.User, form.UserName); err != nil {
+ if ctx.User.Name != form.Name {
+ if err := models.ChangeUserName(ctx.User, form.Name); err != nil {
switch {
case models.IsErrUserAlreadyExist(err):
- ctx.Flash.Error(ctx.Tr("form.username_been_taken"))
+ ctx.Flash.Error(ctx.Tr("form.name_been_taken"))
ctx.Redirect(setting.AppSubUrl + "/user/settings")
case models.IsErrEmailAlreadyUsed(err):
ctx.Flash.Error(ctx.Tr("form.email_been_used"))
@@ -67,16 +69,16 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateProfileForm) {
}
return
}
- log.Trace("User name changed: %s -> %s", ctx.User.Name, form.UserName)
- ctx.User.Name = form.UserName
+ log.Trace("User name changed: %s -> %s", ctx.User.Name, form.Name)
+ ctx.User.Name = form.Name
}
ctx.User.FullName = form.FullName
ctx.User.Email = form.Email
ctx.User.Website = form.Website
ctx.User.Location = form.Location
- ctx.User.Avatar = base.EncodeMd5(form.Avatar)
- ctx.User.AvatarEmail = form.Avatar
+ ctx.User.Avatar = base.EncodeMd5(form.Gravatar)
+ ctx.User.AvatarEmail = form.Gravatar
if err := models.UpdateUser(ctx.User); err != nil {
ctx.Handle(500, "UpdateUser", err)
return
@@ -87,45 +89,47 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateProfileForm) {
}
// FIXME: limit size.
-func SettingsAvatar(ctx *middleware.Context, form auth.UploadAvatarForm) {
- defer ctx.Redirect(setting.AppSubUrl + "/user/settings")
-
- ctx.User.UseCustomAvatar = form.Enable
+func UpdateAvatarSetting(ctx *middleware.Context, form auth.UploadAvatarForm, ctxUser *models.User) error {
+ ctxUser.UseCustomAvatar = form.Enable
if form.Avatar != nil {
fr, err := form.Avatar.Open()
if err != nil {
- ctx.Flash.Error(err.Error())
- return
+ return fmt.Errorf("Avatar.Open: %v", err)
}
data, err := ioutil.ReadAll(fr)
if err != nil {
- ctx.Flash.Error(err.Error())
- return
+ return fmt.Errorf("ReadAll: %v", err)
}
if _, ok := base.IsImageFile(data); !ok {
- ctx.Flash.Error(ctx.Tr("settings.uploaded_avatar_not_a_image"))
- return
+ return errors.New(ctx.Tr("settings.uploaded_avatar_not_a_image"))
}
- if err = ctx.User.UploadAvatar(data); err != nil {
- ctx.Flash.Error(err.Error())
- return
+ if err = ctxUser.UploadAvatar(data); err != nil {
+ return fmt.Errorf("UploadAvatar: %v", err)
}
} else {
// In case no avatar at all.
if form.Enable && !com.IsFile(ctx.User.CustomAvatarPath()) {
- ctx.Flash.Error(ctx.Tr("settings.no_custom_avatar_available"))
- return
+ return errors.New(ctx.Tr("settings.no_custom_avatar_available"))
}
}
- if err := models.UpdateUser(ctx.User); err != nil {
+ if err := models.UpdateUser(ctxUser); err != nil {
+ return fmt.Errorf("UpdateUser: %v", err)
+ }
+
+ return nil
+}
+
+func SettingsAvatar(ctx *middleware.Context, form auth.UploadAvatarForm) {
+ if err := UpdateAvatarSetting(ctx, form, ctx.User); err != nil {
ctx.Flash.Error(err.Error())
- return
+ } else {
+ ctx.Flash.Success(ctx.Tr("settings.update_avatar_success"))
}
- ctx.Flash.Success(ctx.Tr("settings.update_avatar_success"))
+ ctx.Redirect(setting.AppSubUrl + "/user/settings")
}
func SettingsEmails(ctx *middleware.Context) {