|
|
@ -67,11 +67,23 @@ type PublicKey struct {
|
|
|
|
Updated time.Time `xorm:"updated"`
|
|
|
|
Updated time.Time `xorm:"updated"`
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
|
|
|
|
ErrKeyAlreadyExist = errors.New("Public key already exist")
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
func GenAuthorizedKey(keyId int64, key string) string {
|
|
|
|
func GenAuthorizedKey(keyId int64, key string) string {
|
|
|
|
return fmt.Sprintf(tmplPublicKey, appPath, keyId, key)
|
|
|
|
return fmt.Sprintf(tmplPublicKey, appPath, keyId, key)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func AddPublicKey(key *PublicKey) (err error) {
|
|
|
|
func AddPublicKey(key *PublicKey) (err error) {
|
|
|
|
|
|
|
|
// Check if public key name has been used.
|
|
|
|
|
|
|
|
has, err := orm.Get(key)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return err
|
|
|
|
|
|
|
|
} else if has {
|
|
|
|
|
|
|
|
return ErrKeyAlreadyExist
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Calculate fingerprint.
|
|
|
|
// Calculate fingerprint.
|
|
|
|
tmpPath := filepath.Join(os.TempDir(), fmt.Sprintf("%d", time.Now().Nanosecond()),
|
|
|
|
tmpPath := filepath.Join(os.TempDir(), fmt.Sprintf("%d", time.Now().Nanosecond()),
|
|
|
|
"id_rsa.pub")
|
|
|
|
"id_rsa.pub")
|
|
|
|