Browse Source

add publickey

pull/31/head
Lunny Xiao 11 years ago
parent
commit
52984f85d5
  1. 6
      models/publickey.go
  2. 17
      routers/user/ssh.go
  3. 2
      templates/user/publickey_add.tmpl
  4. 8
      templates/user/publickey_added.tmpl

6
models/publickey.go

@ -47,7 +47,7 @@ func GenAuthorizedKey(keyId int64, key string) string {
return fmt.Sprintf(tmplPublicKey, appPath, keyId, key)
}
func AddPublicKey(key *PublicKey, user string) error {
func AddPublicKey(key *PublicKey) error {
_, err := orm.Insert(key)
if err != nil {
return err
@ -67,11 +67,11 @@ func AddPublicKey(key *PublicKey, user string) error {
func SaveAuthorizedKeyFile(key *PublicKey) error {
p := filepath.Join(sshPath, "authorized_keys")
f, err := os.Create(p)
f, err := os.OpenFile(p, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600)
if err != nil {
return err
}
os.Chmod(p, 0600)
//os.Chmod(p, 0600)
_, err = f.WriteString(GenAuthorizedKey(key.Id, key.Content))
return err
}

17
routers/user/ssh.go

@ -21,9 +21,16 @@ func AddPublickKey(req *http.Request, r render.Render) {
return
}
k := &models.PublicKey{}
err := models.AddPublicKey(k, "")
r.HTML(403, "status/403", map[string]interface{}{
"Title": fmt.Sprintf("%v", err),
})
k := &models.PublicKey{OwnerId: 1,
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),
})
} else {
r.HTML(200, "user/publickey_added", map[string]interface{}{})
}
}

2
templates/user/publickey_add.tmpl

@ -1,7 +1,7 @@
{{template "base/head" .}}
{{template "base/navbar" .}}
<div class="container">
<form action="/user/delete" method="post" class="form-horizontal">
<form action="/user/publickey/add" method="post" class="form-horizontal">
<div class="form-group">
<label class="col-md-4 control-label">Name of this public key: </label>
<div class="col-md-3">

8
templates/user/publickey_added.tmpl

@ -0,0 +1,8 @@
{{template "base/head" .}}
{{template "base/navbar" .}}
<div class="container">
<div class="form-group">
publickey added
</div>
</div>
{{template "base/footer" .}}
Loading…
Cancel
Save