diff options
author | Unknown <joe2010xtmf@163.com> | 2014-03-10 20:48:58 -0400 |
---|---|---|
committer | Unknown <joe2010xtmf@163.com> | 2014-03-10 20:48:58 -0400 |
commit | 897329a64416dd46b9e4f5a81c3c7a1666fc1173 (patch) | |
tree | ced28c8cea44742e091a38370414453b6c172ade /routers/user/setting.go | |
parent | efa039a0f75ff9ba9376af1cbd3d948752c074fc (diff) |
Add add and delete SSH key
Diffstat (limited to 'routers/user/setting.go')
-rw-r--r-- | routers/user/setting.go | 43 |
1 files changed, 26 insertions, 17 deletions
diff --git a/routers/user/setting.go b/routers/user/setting.go index aabbc212..96a02b6f 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -5,14 +5,16 @@ package user import ( + "net/http" + "strconv" + + "github.com/martini-contrib/render" + "github.com/martini-contrib/sessions" + "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/auth" "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/log" - "github.com/martini-contrib/render" - "github.com/martini-contrib/sessions" - "net/http" - "strconv" ) func Setting(r render.Render, data base.TmplData, session sessions.Session) { @@ -21,9 +23,12 @@ func Setting(r render.Render, data base.TmplData, session sessions.Session) { r.HTML(200, "user/setting", data) } -func SettingSSHKeys(r render.Render, data base.TmplData, req *http.Request, session sessions.Session) { - // del ssh ky +func SettingSSHKeys(form auth.AddSSHKeyForm, r render.Render, data base.TmplData, req *http.Request, session sessions.Session) { + data["Title"] = "SSH Keys" + + // Delete SSH key. if req.Method == "DELETE" || req.FormValue("_method") == "DELETE" { + println(1) id, err := strconv.ParseInt(req.FormValue("id"), 10, 64) if err != nil { data["ErrorMsg"] = err @@ -38,8 +43,8 @@ func SettingSSHKeys(r render.Render, data base.TmplData, req *http.Request, sess Id: id, OwnerId: auth.SignedInId(session), } - err = models.DeletePublicKey(k) - if err != nil { + + if err = models.DeletePublicKey(k); err != nil { data["ErrorMsg"] = err log.Error("ssh.DelPublicKey: %v", err) r.JSON(200, map[string]interface{}{ @@ -51,16 +56,21 @@ func SettingSSHKeys(r render.Render, data base.TmplData, req *http.Request, sess "ok": true, }) } - return } - // add ssh key + + // Add new SSH key. if req.Method == "POST" { + if hasErr, ok := data["HasError"]; ok && hasErr.(bool) { + r.HTML(200, "user/publickey", data) + return + } + k := &models.PublicKey{OwnerId: auth.SignedInId(session), - Name: req.FormValue("keyname"), - Content: req.FormValue("key_content"), + Name: form.KeyName, + Content: form.KeyContent, } - err := models.AddPublicKey(k) - if err != nil { + + if err := models.AddPublicKey(k); err != nil { data["ErrorMsg"] = err log.Error("ssh.AddPublicKey: %v", err) r.HTML(200, "base/error", data) @@ -69,7 +79,8 @@ func SettingSSHKeys(r render.Render, data base.TmplData, req *http.Request, sess data["AddSSHKeySuccess"] = true } } - // get keys + + // List existed SSH keys. keys, err := models.ListPublicKey(auth.SignedInId(session)) if err != nil { data["ErrorMsg"] = err @@ -78,8 +89,6 @@ func SettingSSHKeys(r render.Render, data base.TmplData, req *http.Request, sess return } - // set to template - data["Title"] = "SSH Keys" data["PageIsUserSetting"] = true data["Keys"] = keys r.HTML(200, "user/publickey", data) |