|  | @@ -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)
 |