diff options
author | 无闻 <joe2010xtmf@163.com> | 2014-04-04 10:40:14 -0400 |
---|---|---|
committer | 无闻 <joe2010xtmf@163.com> | 2014-04-04 10:40:14 -0400 |
commit | 3a23476dbef0bb90ce5e8bc4c7ab8929bc04bb1b (patch) | |
tree | 8cfb016c545a0b7583fcb7e7acc5a11fc11c20a2 /routers/user/setting.go | |
parent | 48d3a1fef12242c6f5c1848ca58e02d946a709da (diff) | |
parent | 75db79b4b6bcb8f61dd957c9bd21b32d4746f866 (diff) |
Merge pull request #61 from gogits/dev
Dev
Diffstat (limited to 'routers/user/setting.go')
-rw-r--r-- | routers/user/setting.go | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/routers/user/setting.go b/routers/user/setting.go index 75adf2b8..4b6d88a3 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -23,15 +23,27 @@ func Setting(ctx *middleware.Context, form auth.UpdateProfileForm) { user := ctx.User ctx.Data["Owner"] = user - if ctx.Req.Method == "GET" { + if ctx.Req.Method == "GET" || ctx.HasError() { ctx.HTML(200, "user/setting") return } - // below is for POST requests - if hasErr, ok := ctx.Data["HasError"]; ok && hasErr.(bool) { - ctx.HTML(200, "user/setting") - return + // Check if user name has been changed. + if user.Name != form.UserName { + isExist, err := models.IsUserExist(form.UserName) + if err != nil { + ctx.Handle(404, "user.Setting(update: check existence)", err) + return + } else if isExist { + ctx.RenderWithErr("User name has been taken.", "user/setting", &form) + return + } else if err = models.ChangeUserName(user, form.UserName); err != nil { + ctx.Handle(404, "user.Setting(change user name)", err) + return + } + log.Trace("%s User name changed: %s -> %s", ctx.Req.RequestURI, user.Name, form.UserName) + + user.Name = form.UserName } user.Email = form.Email @@ -46,7 +58,6 @@ func Setting(ctx *middleware.Context, form auth.UpdateProfileForm) { ctx.Data["IsSuccess"] = true ctx.HTML(200, "user/setting") - log.Trace("%s User setting updated: %s", ctx.Req.RequestURI, ctx.User.LowerName) } |