Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-10-19 15:11:29 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-10-19 15:11:29 +0300
commit881435f2a3eeca1b5b544ad7c7510481b1773d1b (patch)
tree34d47e49a899efa730d92d2ea25a31e28be32895 /app/services/packages
parent91a9a020dafedd084aaa72022f0aa72d14e4f20b (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services/packages')
-rw-r--r--app/services/packages/npm/create_package_service.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/app/services/packages/npm/create_package_service.rb b/app/services/packages/npm/create_package_service.rb
index d599cecc8da..0f0dc297e9a 100644
--- a/app/services/packages/npm/create_package_service.rb
+++ b/app/services/packages/npm/create_package_service.rb
@@ -12,6 +12,7 @@ module Packages
return error('Version is empty.', 400) if version.blank?
return error('Attachment data is empty.', 400) if attachment['data'].blank?
return error('Package already exists.', 403) if current_package_exists?
+ return error('Package protected.', 403) if current_package_protected?
return error('File is too large.', 400) if file_size_exceeded?
package = try_obtain_lease do
@@ -56,6 +57,13 @@ module Packages
.exists?
end
+ def current_package_protected?
+ return false if Feature.disabled?(:packages_protected_packages, project)
+
+ user_project_authorization_access_level = current_user.max_member_access_for_project(project.id)
+ project.package_protection_rules.push_protected_from?(access_level: user_project_authorization_access_level, package_name: name, package_type: :npm)
+ end
+
def name
params[:name]
end