Browse Source

Merge pull request #372 from andmarios/dev

Remove newline characters from ssh key before processing it.
无闻 10 years ago
parent
commit
ce55807542
1 changed files with 7 additions and 2 deletions
  1. 7 2
      routers/user/setting.go

+ 7 - 2
routers/user/setting.go

@@ -5,6 +5,8 @@
 package user
 
 import (
+	"strings"
+
 	"github.com/Unknwon/com"
 
 	"github.com/gogits/gogs/models"
@@ -171,7 +173,10 @@ func SettingsSSHKeysPost(ctx *middleware.Context, form auth.AddSSHKeyForm) {
 			return
 		}
 
-		if ok, err := models.CheckPublicKeyString(form.Content); !ok {
+		// Remove newline characters from form.KeyContent
+		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("/user/settings/ssh")
 			return
@@ -180,7 +185,7 @@ func SettingsSSHKeysPost(ctx *middleware.Context, form auth.AddSSHKeyForm) {
 		k := &models.PublicKey{
 			OwnerId: ctx.User.Id,
 			Name:    form.SSHTitle,
-			Content: form.Content,
+			Content: cleanContent,
 		}
 		if err := models.AddPublicKey(k); err != nil {
 			if err == models.ErrKeyAlreadyExist {