]> source.dussan.org Git - gitea.git/commitdiff
add del publickey
authorLunny Xiao <xiaolunwen@gmail.com>
Mon, 10 Mar 2014 09:15:02 +0000 (17:15 +0800)
committerLunny Xiao <xiaolunwen@gmail.com>
Mon, 10 Mar 2014 09:15:02 +0000 (17:15 +0800)
models/publickey.go
routers/user/ssh.go

index ea5af8816bbe76e41b6fadedfc58dcefce6117b6..49d7f30828cad71d1dd544504fed12009b188946 100644 (file)
@@ -77,6 +77,11 @@ func AddPublicKey(key *PublicKey) error {
        return nil
 }
 
+func DeletePublicKey(key *PublicKey) error {
+       _, err := orm.Delete(key)
+       return err
+}
+
 func ListPublicKey(userId int64) ([]PublicKey, error) {
        keys := make([]PublicKey, 0)
        err := orm.Find(&keys, &PublicKey{OwnerId: userId})
index 34c378061badfee5391d3cc3caba469914ec9a4f..0144f7a96df901efed6c9c74e04a27fb57d44557 100644 (file)
@@ -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"