diff options
author | KN4CK3R <admin@oldschoolhack.me> | 2023-01-29 18:34:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-29 11:34:29 -0600 |
commit | d283a31f03eae2fc2bd8dc01b2c366308e81e50c (patch) | |
tree | 30669a1fea005fdf705ec4cd071a57a34a86477c /services | |
parent | 2052a9e2b4e17704849e0968762ad7d51fe9d7b7 (diff) | |
download | gitea-d283a31f03eae2fc2bd8dc01b2c366308e81e50c.tar.gz gitea-d283a31f03eae2fc2bd8dc01b2c366308e81e50c.zip |
Check quota limits for container uploads (#22450)
The test coverage has revealed that container packages were not checked
against the quota limits.
Diffstat (limited to 'services')
-rw-r--r-- | services/packages/packages.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/services/packages/packages.go b/services/packages/packages.go index 410e73c048..754dfa7110 100644 --- a/services/packages/packages.go +++ b/services/packages/packages.go @@ -173,7 +173,7 @@ func createPackageAndVersion(ctx context.Context, pvci *PackageCreationInfo, all } if versionCreated { - if err := checkCountQuotaExceeded(ctx, pvci.Creator, pvci.Owner); err != nil { + if err := CheckCountQuotaExceeded(ctx, pvci.Creator, pvci.Owner); err != nil { return nil, false, err } @@ -240,7 +240,7 @@ func NewPackageBlob(hsr packages_module.HashedSizeReader) *packages_model.Packag func addFileToPackageVersion(ctx context.Context, pv *packages_model.PackageVersion, pvi *PackageInfo, pfci *PackageFileCreationInfo) (*packages_model.PackageFile, *packages_model.PackageBlob, bool, error) { log.Trace("Adding package file: %v, %s", pv.ID, pfci.Filename) - if err := checkSizeQuotaExceeded(ctx, pfci.Creator, pvi.Owner, pvi.PackageType, pfci.Data.Size()); err != nil { + if err := CheckSizeQuotaExceeded(ctx, pfci.Creator, pvi.Owner, pvi.PackageType, pfci.Data.Size()); err != nil { return nil, nil, false, err } @@ -302,7 +302,9 @@ func addFileToPackageVersion(ctx context.Context, pv *packages_model.PackageVers return pf, pb, !exists, nil } -func checkCountQuotaExceeded(ctx context.Context, doer, owner *user_model.User) error { +// CheckCountQuotaExceeded checks if the owner has more than the allowed packages +// The check is skipped if the doer is an admin. +func CheckCountQuotaExceeded(ctx context.Context, doer, owner *user_model.User) error { if doer.IsAdmin { return nil } @@ -324,7 +326,9 @@ func checkCountQuotaExceeded(ctx context.Context, doer, owner *user_model.User) return nil } -func checkSizeQuotaExceeded(ctx context.Context, doer, owner *user_model.User, packageType packages_model.Type, uploadSize int64) error { +// CheckSizeQuotaExceeded checks if the upload size is bigger than the allowed size +// The check is skipped if the doer is an admin. +func CheckSizeQuotaExceeded(ctx context.Context, doer, owner *user_model.User, packageType packages_model.Type, uploadSize int64) error { if doer.IsAdmin { return nil } |