mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-30 19:08:37 +00:00 
			
		
		
		
	add publickey list
This commit is contained in:
		| @@ -77,6 +77,12 @@ func AddPublicKey(key *PublicKey) error { | |||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func ListPublicKey(userId int64) ([]PublicKey, error) { | ||||||
|  | 	keys := make([]PublicKey, 0) | ||||||
|  | 	err := orm.Find(&keys, &PublicKey{OwnerId: userId}) | ||||||
|  | 	return keys, err | ||||||
|  | } | ||||||
|  |  | ||||||
| func SaveAuthorizedKeyFile(key *PublicKey) error { | func SaveAuthorizedKeyFile(key *PublicKey) error { | ||||||
| 	p := filepath.Join(sshPath, "authorized_keys") | 	p := filepath.Join(sshPath, "authorized_keys") | ||||||
| 	f, err := os.OpenFile(p, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600) | 	f, err := os.OpenFile(p, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600) | ||||||
|   | |||||||
| @@ -11,26 +11,46 @@ import ( | |||||||
| 	"github.com/martini-contrib/render" | 	"github.com/martini-contrib/render" | ||||||
|  |  | ||||||
| 	"github.com/gogits/gogs/models" | 	"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" { | 	if req.Method == "GET" { | ||||||
| 		r.HTML(200, "user/publickey_add", map[string]interface{}{ | 		r.HTML(200, "user/publickey_add", map[string]interface{}{ | ||||||
| 			"Title": "Add Public Key", | 			"Title":    "Add Public Key", | ||||||
|  | 			"IsSigned": IsSignedIn(session), | ||||||
| 		}) | 		}) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	k := &models.PublicKey{OwnerId: 1, | 	k := &models.PublicKey{OwnerId: SignedInId(session), | ||||||
| 		Name:    req.FormValue("keyname"), | 		Name:    req.FormValue("keyname"), | ||||||
| 		Content: req.FormValue("key_content"), | 		Content: req.FormValue("key_content"), | ||||||
| 	} | 	} | ||||||
| 	err := models.AddPublicKey(k) | 	err := models.AddPublicKey(k) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		r.HTML(403, "status/403", map[string]interface{}{ | 		r.HTML(403, "status/403", map[string]interface{}{ | ||||||
| 			"Title": fmt.Sprintf("%v", err), | 			"Title":    fmt.Sprintf("%v", err), | ||||||
|  | 			"IsSigned": IsSignedIn(session), | ||||||
| 		}) | 		}) | ||||||
| 	} else { | 	} else { | ||||||
| 		r.HTML(200, "user/publickey_added", map[string]interface{}{}) | 		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), | ||||||
|  | 	}) | ||||||
|  | } | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ | |||||||
|                 <img src="http://1.gravatar.com/avatar/{{.Avatar}}?s=28" alt="user-avatar" title="username"/> |                 <img src="http://1.gravatar.com/avatar/{{.Avatar}}?s=28" alt="user-avatar" title="username"/> | ||||||
|             </a> |             </a> | ||||||
|             <a class="navbar-right gogs-nav-item" href="/repo/create" data-toggle="tooltip" data-placement="bottom" title="New Repository"><i class="fa fa-plus fa-lg"></i></a> |             <a class="navbar-right gogs-nav-item" href="/repo/create" data-toggle="tooltip" data-placement="bottom" title="New Repository"><i class="fa fa-plus fa-lg"></i></a> | ||||||
|             <a class="navbar-right gogs-nav-item" href="#"  data-toggle="tooltip" data-placement="bottom" title="Setting"><i class="fa fa-cogs fa-lg"></i></a> |             <a class="navbar-right gogs-nav-item" href="/user/publickey/list"  data-toggle="tooltip" data-placement="bottom" title="Setting"><i class="fa fa-cogs fa-lg"></i></a> | ||||||
|             {{else}}<a id="gogs-nav-signin" class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/user/login/">Sign in</a>{{end}} |             {{else}}<a id="gogs-nav-signin" class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/user/login/">Sign in</a>{{end}} | ||||||
|         </nav> |         </nav> | ||||||
|     </div> |     </div> | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| {{template "base/head" .}} | {{template "base/head" .}} | ||||||
| {{template "base/navbar" .}} | {{template "base/navbar" .}} | ||||||
| <div class="container"> | <div class="container" id="gogs-body"> | ||||||
| 	<form action="/user/publickey/add" method="post" class="form-horizontal"> | 	<form action="/user/publickey/add" method="post" class="form-horizontal"> | ||||||
| 		<div class="form-group"> | 		<div class="form-group"> | ||||||
| 			<label class="col-md-4 control-label">Name of this public key: </label> | 			<label class="col-md-4 control-label">Name of this public key: </label> | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								templates/user/publickey_list.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								templates/user/publickey_list.tmpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | {{template "base/head" .}} | ||||||
|  | {{template "base/navbar" .}} | ||||||
|  | <div class="container" id="gogs-body"> | ||||||
|  | <div><a href="/user/publickey/add">Add publick key</a></div> | ||||||
|  | 	<ul> | ||||||
|  | 	{{range .Keys}} | ||||||
|  | 		<li>{{.Name}}</li> | ||||||
|  | 		<li>{{.Content}}</li> | ||||||
|  | 	{{end}} | ||||||
|  | 	</ul> | ||||||
|  | </div> | ||||||
|  | {{template "base/footer" .}} | ||||||
							
								
								
									
										1
									
								
								web.go
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								web.go
									
									
									
									
									
								
							| @@ -65,6 +65,7 @@ func runWeb(*cli.Context) { | |||||||
| 	m.Get("/user/profile", user.Profile) // should be /username | 	m.Get("/user/profile", user.Profile) // should be /username | ||||||
| 	m.Any("/user/delete", user.Delete) | 	m.Any("/user/delete", user.Delete) | ||||||
| 	m.Any("/user/publickey/add", user.AddPublicKey) | 	m.Any("/user/publickey/add", user.AddPublicKey) | ||||||
|  | 	m.Any("/user/publickey/list", user.ListPublicKey) | ||||||
| 	m.Any("/repo/create", repo.Create) | 	m.Any("/repo/create", repo.Create) | ||||||
| 	m.Any("/repo/delete", repo.Delete) | 	m.Any("/repo/delete", repo.Delete) | ||||||
| 	m.Any("/repo/list", repo.List) | 	m.Any("/repo/list", repo.List) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user