diff options
author | Unknown <joe2010xtmf@163.com> | 2014-04-03 16:33:27 -0400 |
---|---|---|
committer | Unknown <joe2010xtmf@163.com> | 2014-04-03 16:33:27 -0400 |
commit | e9c4156c874ceeecc81fdf7fe00ff2f582110ecd (patch) | |
tree | 091d17fbfa89444ab16c97d4c4b8da361a1c6ad8 /routers/user/setting.go | |
parent | 79a610592ea7c2e93ab2f91190af1782c4aa8f8d (diff) |
Add: rename user
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) } |