mirror of
https://github.com/go-gitea/gitea.git
synced 2026-08-10 05:24:18 +09:00
## Issue Gitea does not display a clear error message when a user tries to create a cleanup rule for a package type that already has an existing cleanup rule. Although the duplicate rule is detected, the user is not informed why the cleanup rule cannot be created. ## Solution Add a user-facing error message when a cleanup rule already exists for the selected package type. Also add an integration test to verify that the appropriate error message is displayed when attempting to create a duplicate cleanup rule. Fixes #37820
This commit is contained in:
@@ -3932,5 +3932,6 @@
|
|||||||
"actions.general.cross_repo_desc": "Allow the selected repositories to be accessed (read-only) by all the repositories in this owner with GITEA_TOKEN when running Actions jobs.",
|
"actions.general.cross_repo_desc": "Allow the selected repositories to be accessed (read-only) by all the repositories in this owner with GITEA_TOKEN when running Actions jobs.",
|
||||||
"actions.general.cross_repo_selected": "Selected repositories",
|
"actions.general.cross_repo_selected": "Selected repositories",
|
||||||
"actions.general.cross_repo_target_repos": "Target Repositories",
|
"actions.general.cross_repo_target_repos": "Target Repositories",
|
||||||
"actions.general.cross_repo_add": "Add Target Repository"
|
"actions.general.cross_repo_add": "Add Target Repository",
|
||||||
|
"packages.owner.settings.cleanuprules.type.already_exists": "A cleanup rule for this package type already exists."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ func performRuleEditPost(ctx *context.Context, owner *user_model.User, pcr *pack
|
|||||||
return
|
return
|
||||||
} else if has {
|
} else if has {
|
||||||
ctx.Data["Err_Type"] = true
|
ctx.Data["Err_Type"] = true
|
||||||
|
ctx.Flash.Error(ctx.Tr("packages.owner.settings.cleanuprules.type.already_exists"), true)
|
||||||
ctx.HTML(http.StatusOK, template)
|
ctx.HTML(http.StatusOK, template)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,33 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestPackageCleanupRuleDuplicateType(t *testing.T) {
|
||||||
|
defer tests.PrepareTestEnv(t)()
|
||||||
|
|
||||||
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4})
|
||||||
|
session := loginUser(t, user.Name)
|
||||||
|
|
||||||
|
// Create the first cleanup rule for the generic package type.
|
||||||
|
req := NewRequestWithValues(t, "POST", "/user/settings/packages/rules/add", map[string]string{
|
||||||
|
"type": "generic",
|
||||||
|
"action": "save",
|
||||||
|
"keep_count": "0",
|
||||||
|
"remove_days": "0",
|
||||||
|
})
|
||||||
|
session.MakeRequest(t, req, http.StatusSeeOther)
|
||||||
|
|
||||||
|
// Try to create another cleanup rule for the same package type.
|
||||||
|
req = NewRequestWithValues(t, "POST", "/user/settings/packages/rules/add", map[string]string{
|
||||||
|
"type": "generic",
|
||||||
|
"action": "save",
|
||||||
|
"keep_count": "0",
|
||||||
|
"remove_days": "0",
|
||||||
|
})
|
||||||
|
|
||||||
|
resp := session.MakeRequest(t, req, http.StatusOK)
|
||||||
|
assert.Contains(t, resp.Body.String(), "A cleanup rule for this package type already exists.")
|
||||||
|
}
|
||||||
|
|
||||||
func TestPackageAPI(t *testing.T) {
|
func TestPackageAPI(t *testing.T) {
|
||||||
defer tests.PrepareTestEnv(t)()
|
defer tests.PrepareTestEnv(t)()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user