Skip to content

Commit cc7b930

Browse files
committed
fix: check package write permission
1 parent 60e27a3 commit cc7b930

1 file changed

Lines changed: 1 addition & 21 deletions

File tree

routers/api/v1/packages/package.go

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,11 @@ import (
1111

1212
"gitea.dev/models/db"
1313
git_model "gitea.dev/models/git"
14-
org_model "gitea.dev/models/organization"
1514
"gitea.dev/models/packages"
1615
"gitea.dev/models/perm"
1716
access_model "gitea.dev/models/perm/access"
1817
repo_model "gitea.dev/models/repo"
1918
"gitea.dev/models/unit"
20-
user_model "gitea.dev/models/user"
2119
"gitea.dev/modules/json"
2220
"gitea.dev/modules/optional"
2321
composer_module "gitea.dev/modules/packages/composer"
@@ -510,7 +508,7 @@ func CreateComposerDevBranch(ctx *context.APIContext) {
510508
// "404":
511509
// "$ref": "#/responses/notFound"
512510

513-
if !canWriteOwnerPackages(ctx, ctx.Package.Owner, ctx.Doer) {
511+
if ctx.Package.AccessMode < perm.AccessModeWrite && !ctx.IsUserSiteAdmin() {
514512
ctx.APIError(http.StatusForbidden, "user should have package write permission or be a site admin")
515513
return
516514
}
@@ -650,24 +648,6 @@ func CreateComposerDevBranch(ctx *context.APIContext) {
650648
})
651649
}
652650

653-
func canWriteOwnerPackages(ctx *context.APIContext, owner, doer *user_model.User) bool {
654-
if ctx.IsUserSiteAdmin() {
655-
return true
656-
}
657-
if doer == nil || doer.IsGhost() {
658-
return false
659-
}
660-
if !owner.IsOrganization() {
661-
return owner.ID == doer.ID
662-
}
663-
accessMode, err := org_model.OrgFromUser(owner).GetOrgUserMaxAuthorizeLevel(ctx, doer.ID)
664-
if err != nil {
665-
ctx.APIErrorInternal(err)
666-
return false
667-
}
668-
return accessMode >= perm.AccessModeWrite
669-
}
670-
671651
func searchPackages(ctx *context.APIContext, opts *packages.PackageSearchOptions) ([]*api.Package, int64, error) {
672652
pvs, count, err := packages.SearchVersions(ctx, opts)
673653
if err != nil {

0 commit comments

Comments
 (0)