From 881435f2a3eeca1b5b544ad7c7510481b1773d1b Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 19 Oct 2023 12:11:29 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- app/services/packages/npm/create_package_service.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'app/services/packages') 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 -- cgit v1.2.3