diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-13 18:08:52 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-13 18:08:52 +0300 |
commit | 0ab47b994caa80c5587f33dc818626b66cfdafe2 (patch) | |
tree | 5ef3976d2f84e3368903a67ba2dbd87a74b9a43c /app/services/projects | |
parent | 1308dc5eb484ab0f8064989fc551ebdb4b1a7976 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services/projects')
-rw-r--r-- | app/services/projects/container_repository/cleanup_tags_service.rb | 8 | ||||
-rw-r--r-- | app/services/projects/container_repository/delete_tags_service.rb | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/app/services/projects/container_repository/cleanup_tags_service.rb b/app/services/projects/container_repository/cleanup_tags_service.rb index b995df12e56..046745d725e 100644 --- a/app/services/projects/container_repository/cleanup_tags_service.rb +++ b/app/services/projects/container_repository/cleanup_tags_service.rb @@ -5,7 +5,7 @@ module Projects class CleanupTagsService < BaseService def execute(container_repository) return error('feature disabled') unless can_use? - return error('access denied') unless can_admin? + return error('access denied') unless can_destroy? tags = container_repository.tags tags_by_digest = group_by_digest(tags) @@ -82,8 +82,10 @@ module Projects end end - def can_admin? - can?(current_user, :admin_container_image, project) + def can_destroy? + return true if params['container_expiration_policy'] + + can?(current_user, :destroy_container_image, project) end def can_use? diff --git a/app/services/projects/container_repository/delete_tags_service.rb b/app/services/projects/container_repository/delete_tags_service.rb index d19f275e928..21081bd077f 100644 --- a/app/services/projects/container_repository/delete_tags_service.rb +++ b/app/services/projects/container_repository/delete_tags_service.rb @@ -42,7 +42,7 @@ module Projects # Deletes the dummy image # All created tag digests are the same since they all have the same dummy image. # a single delete is sufficient to remove all tags with it - if deleted_tags.any? && container_repository.delete_tag_by_digest(deleted_tags.values.first) + if deleted_tags.any? && container_repository.delete_tag_by_digest(deleted_tags.each_value.first) success(deleted: deleted_tags.keys) else error('could not delete tags') |