diff options
Diffstat (limited to 'app/graphql/types/packages/package_type.rb')
-rw-r--r-- | app/graphql/types/packages/package_type.rb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/app/graphql/types/packages/package_type.rb b/app/graphql/types/packages/package_type.rb index f3fa79cc08c..9851c6aec7e 100644 --- a/app/graphql/types/packages/package_type.rb +++ b/app/graphql/types/packages/package_type.rb @@ -6,6 +6,8 @@ module Types graphql_name 'Package' description 'Represents a package in the Package Registry. Note that this type is in beta and susceptible to changes' + connection_type_class(Types::CountableConnectionType) + authorize :read_package field :id, ::Types::GlobalIDType[::Packages::Package], null: false, @@ -26,6 +28,7 @@ module Types description: 'Other versions of the package.', deprecated: { reason: 'This field is now only returned in the PackageDetailsType', milestone: '13.11' } field :status, Types::Packages::PackageStatusEnum, null: false, description: 'Package status.' + field :can_destroy, GraphQL::Types::Boolean, null: false, description: 'Whether the user can destroy the package.' def project Gitlab::Graphql::Loaders::BatchModelLoader.new(Project, object.project_id).find @@ -35,6 +38,10 @@ module Types [] end + def can_destroy + Ability.allowed?(current_user, :destroy_package, object) + end + # NOTE: This method must be kept in sync with the union # type: `Types::Packages::MetadataType`. # |