2017-09-21 10:21:50 +00:00
|
|
|
class ContainerTagEntity < Grape::Entity
|
|
|
|
include RequestAwareEntity
|
|
|
|
|
2017-10-17 14:58:28 +00:00
|
|
|
expose :name, :location, :revision, :short_revision, :total_size, :created_at
|
2017-09-21 10:21:50 +00:00
|
|
|
|
|
|
|
expose :destroy_path, if: -> (*) { can_destroy? } do |tag|
|
2017-10-18 23:35:37 +00:00
|
|
|
project_registry_repository_tag_path(project, tag.repository, tag.name)
|
2017-09-21 10:21:50 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
alias_method :tag, :object
|
|
|
|
|
|
|
|
def project
|
|
|
|
request.project
|
|
|
|
end
|
|
|
|
|
|
|
|
def can_destroy?
|
|
|
|
# TODO: We check permission against @project, not tag,
|
|
|
|
# as tag is no AR object that is attached to project
|
|
|
|
can?(request.current_user, :update_container_image, project)
|
|
|
|
end
|
|
|
|
end
|