summaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorMichael Kuhn <suraia@ikkoku.de>2017-11-21 04:49:33 +0100
committerLunny Xiao <xiaolunwen@gmail.com>2017-11-21 11:49:33 +0800
commit420fc8efc24d7a77598307557e5b38077d0efafc (patch)
tree9e94b3b70771e2ab053fab8ace2dd19f6f882d5b /routers
parent1f7aab6e1976a58fef4c0f328d7ed30a30d3b476 (diff)
downloadgitea-420fc8efc24d7a77598307557e5b38077d0efafc.tar.gz
gitea-420fc8efc24d7a77598307557e5b38077d0efafc.zip
Disable add key button if SSH is disabled (#2873)
Diffstat (limited to 'routers')
-rw-r--r--routers/api/v1/repo/key.go4
-rw-r--r--routers/repo/setting.go9
-rw-r--r--routers/user/setting.go9
3 files changed, 15 insertions, 7 deletions
diff --git a/routers/api/v1/repo/key.go b/routers/api/v1/repo/key.go
index a20f4c829e..42082c3561 100644
--- a/routers/api/v1/repo/key.go
+++ b/routers/api/v1/repo/key.go
@@ -106,7 +106,9 @@ func GetDeployKey(ctx *context.APIContext) {
// HandleCheckKeyStringError handle check key error
func HandleCheckKeyStringError(ctx *context.APIContext, err error) {
- if models.IsErrKeyUnableVerify(err) {
+ if models.IsErrSSHDisabled(err) {
+ ctx.Error(422, "", "SSH is disabled")
+ } else if models.IsErrKeyUnableVerify(err) {
ctx.Error(422, "", "Unable to verify key content")
} else {
ctx.Error(422, "", fmt.Errorf("Invalid key content: %v", err))
diff --git a/routers/repo/setting.go b/routers/repo/setting.go
index ebe1c7cd9e..5586e81f05 100644
--- a/routers/repo/setting.go
+++ b/routers/repo/setting.go
@@ -515,6 +515,7 @@ func GitHooksEditPost(ctx *context.Context) {
func DeployKeys(ctx *context.Context) {
ctx.Data["Title"] = ctx.Tr("repo.settings.deploy_keys")
ctx.Data["PageIsSettingsKeys"] = true
+ ctx.Data["DisableSSH"] = setting.SSH.Disabled
keys, err := models.ListDeployKeys(ctx.Repo.Repository.ID)
if err != nil {
@@ -545,15 +546,17 @@ func DeployKeysPost(ctx *context.Context, form auth.AddKeyForm) {
content, err := models.CheckPublicKeyString(form.Content)
if err != nil {
- if models.IsErrKeyUnableVerify(err) {
+ if models.IsErrSSHDisabled(err) {
+ ctx.Flash.Info(ctx.Tr("settings.ssh_disabled"))
+ } else if models.IsErrKeyUnableVerify(err) {
ctx.Flash.Info(ctx.Tr("form.unable_verify_ssh_key"))
} else {
ctx.Data["HasError"] = true
ctx.Data["Err_Content"] = true
ctx.Flash.Error(ctx.Tr("form.invalid_ssh_key", err.Error()))
- ctx.Redirect(ctx.Repo.RepoLink + "/settings/keys")
- return
}
+ ctx.Redirect(ctx.Repo.RepoLink + "/settings/keys")
+ return
}
key, err := models.AddDeployKey(ctx.Repo.Repository.ID, form.Title, content)
diff --git a/routers/user/setting.go b/routers/user/setting.go
index a00f3f287a..eae97e9aff 100644
--- a/routers/user/setting.go
+++ b/routers/user/setting.go
@@ -339,6 +339,7 @@ func DeleteEmail(ctx *context.Context) {
func SettingsKeys(ctx *context.Context) {
ctx.Data["Title"] = ctx.Tr("settings")
ctx.Data["PageIsSettingsKeys"] = true
+ ctx.Data["DisableSSH"] = setting.SSH.Disabled
keys, err := models.ListPublicKeys(ctx.User.ID)
if err != nil {
@@ -405,13 +406,15 @@ func SettingsKeysPost(ctx *context.Context, form auth.AddKeyForm) {
case "ssh":
content, err := models.CheckPublicKeyString(form.Content)
if err != nil {
- if models.IsErrKeyUnableVerify(err) {
+ if models.IsErrSSHDisabled(err) {
+ ctx.Flash.Info(ctx.Tr("settings.ssh_disabled"))
+ } else if models.IsErrKeyUnableVerify(err) {
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/keys")
- return
}
+ ctx.Redirect(setting.AppSubURL + "/user/settings/keys")
+ return
}
if _, err = models.AddPublicKey(ctx.User.ID, form.Title, content); err != nil {