diff options
Diffstat (limited to 'routers/user/ssh.go')
-rw-r--r-- | routers/user/ssh.go | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/routers/user/ssh.go b/routers/user/ssh.go index 7b5a1d325b..9e9cf009fe 100644 --- a/routers/user/ssh.go +++ b/routers/user/ssh.go @@ -11,26 +11,46 @@ import ( "github.com/martini-contrib/render" "github.com/gogits/gogs/models" + "github.com/martini-contrib/sessions" ) -func AddPublicKey(req *http.Request, r render.Render) { +func AddPublicKey(req *http.Request, r render.Render, session sessions.Session) { if req.Method == "GET" { r.HTML(200, "user/publickey_add", map[string]interface{}{ - "Title": "Add Public Key", + "Title": "Add Public Key", + "IsSigned": IsSignedIn(session), }) return } - k := &models.PublicKey{OwnerId: 1, + k := &models.PublicKey{OwnerId: SignedInId(session), Name: req.FormValue("keyname"), Content: req.FormValue("key_content"), } err := models.AddPublicKey(k) if err != nil { r.HTML(403, "status/403", map[string]interface{}{ - "Title": fmt.Sprintf("%v", err), + "Title": fmt.Sprintf("%v", err), + "IsSigned": IsSignedIn(session), }) } else { r.HTML(200, "user/publickey_added", map[string]interface{}{}) } } + +func ListPublicKey(req *http.Request, r render.Render, session sessions.Session) { + keys, err := models.ListPublicKey(SignedInId(session)) + if err != nil { + r.HTML(200, "base/error", map[string]interface{}{ + "Error": fmt.Sprintf("%v", err), + "IsSigned": IsSignedIn(session), + }) + return + } + + r.HTML(200, "user/publickey_list", map[string]interface{}{ + "Title": "repositories", + "Keys": keys, + "IsSigned": IsSignedIn(session), + }) +} |