Skip to content

Use user_permissions.destroyPackage for package registry

What does this MR do and why?

This MR replaces the usage of packageEntity.canDestroy with packageEntity.userPermissions.destroyPackage for the package registry.

The canDestroy field was deprecated in !136272 (merged).

userPermissions.destroyPackage was added in Add user_permissions fields to PackageType and ... (!135384 - merged).

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

No changes

How to set up and validate locally

  1. rails c - Open the rails console

  2. p = Project.find(1) - Find one of your GDK projects. Project id can be found on the project home page

  3. FactoryBot.create_list(:npm_package, 10, project: p, name: p.name) - Creates 10 npm packages

  4. Add this line if above fails during the creation

     def fixture_file_upload(*args, **kwargs)
       Rack::Test::UploadedFile.new(*args, **kwargs)
     end
  5. Visit groups & projects package list page.

  6. Confirm the GraphQL query requests for userPermissions field & does not request canDestroy field.

  7. Confirm that maintainer, owner & admin permissions can delete packages. Confirm that guest, reporter cannot delete packages

  8. visit package registry detail page via groups & projects package list page

  9. Confirm the GraphQL query requests for userPermissions field & does not request canDestroy field.

  10. Confirm that maintainer, owner & admin permissions can delete package & versions. Confirm that guest, reporter cannot delete package & versions

Related to #390754 (closed)

Edited by Rahul Chanila

Merge request reports