diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2014-03-10 17:15:02 +0800 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2014-03-10 17:15:02 +0800 |
commit | 3ca7a33907e674c2c90e9f795b57bf87868f16b7 (patch) | |
tree | 6ea4849cf997428c4e7189478c225a06564f1a4d /routers/user | |
parent | 8934fe414c372879d01ad89ba191c50333826b3a (diff) |
add del publickey
Diffstat (limited to 'routers/user')
-rw-r--r-- | routers/user/ssh.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/routers/user/ssh.go b/routers/user/ssh.go index 34c37806..0144f7a9 100644 --- a/routers/user/ssh.go +++ b/routers/user/ssh.go @@ -6,6 +6,7 @@ package user import ( "net/http" + "strconv" "github.com/martini-contrib/render" "github.com/martini-contrib/sessions" @@ -38,6 +39,46 @@ func AddPublicKey(req *http.Request, data base.TmplData, r render.Render, sessio } } +func DelPublicKey(req *http.Request, data base.TmplData, r render.Render, session sessions.Session) { + data["Title"] = "Del Public Key" + + if req.Method == "GET" { + r.HTML(200, "user/publickey_add", data) + return + } + + if req.Method == "DELETE" { + id, err := strconv.ParseInt(req.FormValue("id"), 10, 64) + if err != nil { + data["ErrorMsg"] = err + log.Error("ssh.DelPublicKey: %v", err) + r.JSON(200, map[string]interface{}{ + "ok": false, + "err": err.Error(), + }) + return + } + + k := &models.PublicKey{ + Id: id, + OwnerId: auth.SignedInId(session), + } + err = models.DeletePublicKey(k) + if err != nil { + data["ErrorMsg"] = err + log.Error("ssh.DelPublicKey: %v", err) + r.JSON(200, map[string]interface{}{ + "ok": false, + "err": err.Error(), + }) + } else { + r.JSON(200, map[string]interface{}{ + "ok": true, + }) + } + } +} + func ListPublicKey(req *http.Request, data base.TmplData, r render.Render, session sessions.Session) { data["Title"] = "Public Keys" |