Improve error feedback for duplicate deploy keys (#13112)
Instead of a generic HTTP 500 error page, a flash message is rendered with the deploy key page template to inform the user that a key with the intended title already exists. Fixes #13110release/v1.15
parent
0e4f663126
commit
c752ccee64
|
@ -547,7 +547,7 @@ func IsErrDeployKeyNameAlreadyUsed(err error) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (err ErrDeployKeyNameAlreadyUsed) Error() string {
|
func (err ErrDeployKeyNameAlreadyUsed) Error() string {
|
||||||
return fmt.Sprintf("public key already exists [repo_id: %d, name: %s]", err.RepoID, err.Name)
|
return fmt.Sprintf("public key with name already exists [repo_id: %d, name: %s]", err.RepoID, err.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// _____ ___________ __
|
// _____ ___________ __
|
||||||
|
|
|
@ -177,6 +177,8 @@ func HandleAddKeyError(ctx *context.APIContext, err error) {
|
||||||
ctx.Error(http.StatusUnprocessableEntity, "", "Key content has been used as non-deploy key")
|
ctx.Error(http.StatusUnprocessableEntity, "", "Key content has been used as non-deploy key")
|
||||||
case models.IsErrKeyNameAlreadyUsed(err):
|
case models.IsErrKeyNameAlreadyUsed(err):
|
||||||
ctx.Error(http.StatusUnprocessableEntity, "", "Key title has been used")
|
ctx.Error(http.StatusUnprocessableEntity, "", "Key title has been used")
|
||||||
|
case models.IsErrDeployKeyNameAlreadyUsed(err):
|
||||||
|
ctx.Error(http.StatusUnprocessableEntity, "", "A key with the same name already exists")
|
||||||
default:
|
default:
|
||||||
ctx.Error(http.StatusInternalServerError, "AddKey", err)
|
ctx.Error(http.StatusInternalServerError, "AddKey", err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -885,6 +885,9 @@ func DeployKeysPost(ctx *context.Context, form auth.AddKeyForm) {
|
||||||
case models.IsErrKeyNameAlreadyUsed(err):
|
case models.IsErrKeyNameAlreadyUsed(err):
|
||||||
ctx.Data["Err_Title"] = true
|
ctx.Data["Err_Title"] = true
|
||||||
ctx.RenderWithErr(ctx.Tr("repo.settings.key_name_used"), tplDeployKeys, &form)
|
ctx.RenderWithErr(ctx.Tr("repo.settings.key_name_used"), tplDeployKeys, &form)
|
||||||
|
case models.IsErrDeployKeyNameAlreadyUsed(err):
|
||||||
|
ctx.Data["Err_Title"] = true
|
||||||
|
ctx.RenderWithErr(ctx.Tr("repo.settings.key_name_used"), tplDeployKeys, &form)
|
||||||
default:
|
default:
|
||||||
ctx.ServerError("AddDeployKey", err)
|
ctx.ServerError("AddDeployKey", err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue