|
@@ -67,11 +67,23 @@ type PublicKey struct {
|
|
|
Updated time.Time `xorm:"updated"`
|
|
|
}
|
|
|
|
|
|
+var (
|
|
|
+ ErrKeyAlreadyExist = errors.New("Public key already exist")
|
|
|
+)
|
|
|
+
|
|
|
func GenAuthorizedKey(keyId int64, key string) string {
|
|
|
return fmt.Sprintf(tmplPublicKey, appPath, keyId, key)
|
|
|
}
|
|
|
|
|
|
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.
|
|
|
tmpPath := filepath.Join(os.TempDir(), fmt.Sprintf("%d", time.Now().Nanosecond()),
|
|
|
"id_rsa.pub")
|