Add note to GPG key response if user has no keys (#18961)
* Prevent invalid key response. * Display note instead of 404 response. * Fixed test. Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
parent
df9802ca61
commit
f8898c30dc
2 changed files with 4 additions and 0 deletions
|
@ -121,6 +121,7 @@ func TestExportUserGPGKeys(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
// Export empty key list
|
// Export empty key list
|
||||||
testExportUserGPGKeys(t, "user1", `-----BEGIN PGP PUBLIC KEY BLOCK-----
|
testExportUserGPGKeys(t, "user1", `-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Note: This user hasn't uploaded any GPG keys.
|
||||||
|
|
||||||
|
|
||||||
=twTO
|
=twTO
|
||||||
|
|
|
@ -736,6 +736,7 @@ func ShowGPGKeys(ctx *context.Context, uid int64) {
|
||||||
ctx.ServerError("ListGPGKeys", err)
|
ctx.ServerError("ListGPGKeys", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
entities := make([]*openpgp.Entity, 0)
|
entities := make([]*openpgp.Entity, 0)
|
||||||
failedEntitiesID := make([]string, 0)
|
failedEntitiesID := make([]string, 0)
|
||||||
for _, k := range keys {
|
for _, k := range keys {
|
||||||
|
@ -755,6 +756,8 @@ func ShowGPGKeys(ctx *context.Context, uid int64) {
|
||||||
headers := make(map[string]string)
|
headers := make(map[string]string)
|
||||||
if len(failedEntitiesID) > 0 { // If some key need re-import to be exported
|
if len(failedEntitiesID) > 0 { // If some key need re-import to be exported
|
||||||
headers["Note"] = fmt.Sprintf("The keys with the following IDs couldn't be exported and need to be reuploaded %s", strings.Join(failedEntitiesID, ", "))
|
headers["Note"] = fmt.Sprintf("The keys with the following IDs couldn't be exported and need to be reuploaded %s", strings.Join(failedEntitiesID, ", "))
|
||||||
|
} else if len(entities) == 0 {
|
||||||
|
headers["Note"] = "This user hasn't uploaded any GPG keys."
|
||||||
}
|
}
|
||||||
writer, _ := armor.Encode(&buf, "PGP PUBLIC KEY BLOCK", headers)
|
writer, _ := armor.Encode(&buf, "PGP PUBLIC KEY BLOCK", headers)
|
||||||
for _, e := range entities {
|
for _, e := range entities {
|
||||||
|
|
Loading…
Reference in a new issue