diff options
Diffstat (limited to 'routers/user/setting.go')
-rw-r--r-- | routers/user/setting.go | 76 |
1 files changed, 75 insertions, 1 deletions
diff --git a/routers/user/setting.go b/routers/user/setting.go index 0669784be0..8b5a2d18df 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -17,12 +17,72 @@ import ( "github.com/gogits/gogs/modules/log" ) -func Setting(r render.Render, data base.TmplData, session sessions.Session) { +func Setting(form auth.UpdateProfileForm, r render.Render, data base.TmplData, req *http.Request, session sessions.Session) { data["Title"] = "Setting" data["PageIsUserSetting"] = true + + user := auth.SignedInUser(session) + data["Owner"] = user + + if req.Method == "GET" { + r.HTML(200, "user/setting", data) + return + } + + if hasErr, ok := data["HasError"]; ok && hasErr.(bool) { + r.HTML(200, "user/setting", data) + return + } + + user.Email = form.Email + user.Website = form.Website + user.Location = form.Location + user.Avatar = base.EncodeMd5(form.Avatar) + user.AvatarEmail = form.Avatar + if err := models.UpdateUser(user); err != nil { + log.Handle(200, "setting.Setting", data, r, err) + return + } + + data["IsSuccess"] = true r.HTML(200, "user/setting", data) } +func SettingPassword(form auth.UpdatePasswdForm, r render.Render, data base.TmplData, session sessions.Session, req *http.Request) { + data["Title"] = "Password" + data["PageIsUserSetting"] = true + + if req.Method == "GET" { + r.HTML(200, "user/password", data) + return + } + + user := auth.SignedInUser(session) + newUser := &models.User{Passwd: form.NewPasswd} + if err := newUser.EncodePasswd(); err != nil { + log.Handle(200, "setting.SettingPassword", data, r, err) + return + } + + if user.Passwd != newUser.Passwd { + data["HasError"] = true + data["ErrorMsg"] = "Old password is not correct" + } else if form.NewPasswd != form.RetypePasswd { + data["HasError"] = true + data["ErrorMsg"] = "New password and re-type password are not same" + } else { + user.Passwd = newUser.Passwd + if err := models.UpdateUser(user); err != nil { + log.Handle(200, "setting.SettingPassword", data, r, err) + return + } + data["IsSuccess"] = true + } + + data["Owner"] = user + r.HTML(200, "user/password", data) +} + func SettingSSHKeys(form auth.AddSSHKeyForm, r render.Render, data base.TmplData, req *http.Request, session sessions.Session) { data["Title"] = "SSH Keys" @@ -94,3 +154,17 @@ func SettingSSHKeys(form auth.AddSSHKeyForm, r render.Render, data base.TmplData data["Keys"] = keys r.HTML(200, "user/publickey", data) } + +func SettingNotification(r render.Render, data base.TmplData) { + // todo user setting notification + data["Title"] = "Notification" + data["PageIsUserSetting"] = true + r.HTML(200, "user/notification", data) +} + +func SettingSecurity(r render.Render, data base.TmplData) { + // todo user setting security + data["Title"] = "Security" + data["PageIsUserSetting"] = true + r.HTML(200, "user/security", data) +} |