]> source.dussan.org Git - gitea.git/commitdiff
Mirror fix on add ssh key
authorUnknwon <joe2010xtmf@163.com>
Sun, 12 Oct 2014 01:04:42 +0000 (21:04 -0400)
committerUnknwon <joe2010xtmf@163.com>
Sun, 12 Oct 2014 01:04:42 +0000 (21:04 -0400)
conf/locale/locale_en-US.ini
conf/locale/locale_zh-CN.ini
models/publickey.go
routers/user/setting.go

index e0a5066503f6b5be3b1c9f40ab95b3645f92fe57..f99a9e72857121fabcdcd7b0d689b31afb035331 100644 (file)
@@ -159,6 +159,7 @@ user_not_exist = Given user does not exist.
 last_org_owner = The user to remove is the last member in owner team. There must be another owner.
 
 invalid_ssh_key = Sorry, we're not able to verify your SSH key: %s
+unable_verify_ssh_key = Gogs cannot verify your SSH key, but we assume that is valid, please make sure yourself.
 auth_failed = Authentication failed: %v
 
 still_own_repo = Your account still have ownership of repository, you have to delete or transfer them first.
index c704ad2051695b12896519a6bf50af047a837b47..0c17f2d7f954de5fe0c29a909160cd39e5474754 100644 (file)
@@ -159,6 +159,7 @@ user_not_exist = 被操作的用户不存在!
 last_org_owner = 被移除用户为最后一位管理员。请添加一位新的管理员再进行移除成员操作!
 
 invalid_ssh_key = 很抱歉,我们无法验证您输入的 SSH 密钥:%s
+unable_verify_ssh_key = Gogs 无法验证您输入的 SSH 密钥,但我们假设那是有效的密钥,请您自行确保其有效性!
 auth_failed = 授权验证失败:%v
 
 still_own_repo = 您的帐户仍然是某些仓库的拥有者,您必须先转移或删除它们才能执行删除帐户操作!
index aac5a81aeb9e8fa1871e2510f3d71c46436bddb3..762d7333fa6e17e27edbfbb4012c3d2a0d5317d1 100644 (file)
@@ -33,6 +33,7 @@ const (
 var (
        ErrKeyAlreadyExist = errors.New("Public key already exist")
        ErrKeyNotExist     = errors.New("Public key does not exist")
+       ErrKeyUnableVerify = errors.New("Unable to verify public key")
 )
 
 var sshOpLocker = sync.Mutex{}
@@ -134,9 +135,10 @@ func CheckPublicKeyString(content string) (bool, error) {
                return true, nil
        }
 
+       fmt.Println(stdout)
        sshKeygenOutput := strings.Split(stdout, " ")
        if len(sshKeygenOutput) < 4 {
-               return false, fmt.Errorf("not enough fields returned by ssh-keygen -l -f: %v", sshKeygenOutput)
+               return false, ErrKeyUnableVerify
        }
 
        // Check if key type and key size match.
index 8f778acd0d547976be8f116f2d427134e514e792..778f27ac5093a8e2e408c3756e5771f365e7ae07 100644 (file)
@@ -177,9 +177,13 @@ func SettingsSSHKeysPost(ctx *middleware.Context, form auth.AddSSHKeyForm) {
                cleanContent := strings.Replace(form.Content, "\n", "", -1)
 
                if ok, err := models.CheckPublicKeyString(cleanContent); !ok {
-                       ctx.Flash.Error(ctx.Tr("form.invalid_ssh_key", err.Error()))
-                       ctx.Redirect(setting.AppSubUrl + "/user/settings/ssh")
-                       return
+                       if err == models.ErrKeyUnableVerify {
+                               ctx.Flash.Info(ctx.Tr("form.unable_verify_ssh_key"))
+                       } else {
+                               ctx.Flash.Error(ctx.Tr("form.invalid_ssh_key", err.Error()))
+                               ctx.Redirect(setting.AppSubUrl + "/user/settings/ssh")
+                               return
+                       }
                }
 
                k := &models.PublicKey{