aboutsummaryrefslogtreecommitdiff
path: root/routers/user/setting.go
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-03-10 20:48:58 -0400
committerUnknown <joe2010xtmf@163.com>2014-03-10 20:48:58 -0400
commit897329a64416dd46b9e4f5a81c3c7a1666fc1173 (patch)
treeced28c8cea44742e091a38370414453b6c172ade /routers/user/setting.go
parentefa039a0f75ff9ba9376af1cbd3d948752c074fc (diff)
Add add and delete SSH key
Diffstat (limited to 'routers/user/setting.go')
-rw-r--r--routers/user/setting.go43
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)