debian-mirror-gitlab/app/serializers/deploy_keys/deploy_key_entity.rb
2022-07-23 20:15:48 +02:00

22 lines
686 B
Ruby

# frozen_string_literal: true
module DeployKeys
class DeployKeyEntity < BasicDeployKeyEntity
expose :deploy_keys_projects, using: DeployKeysProjectEntity do |deploy_key|
deploy_key.deploy_keys_projects.select do |deploy_key_project|
!deploy_key_project.project&.pending_delete? &&
(allowed_to_read_project?(deploy_key_project.project) || options[:user].can_admin_all_resources?)
end
end
private
def allowed_to_read_project?(project)
if options[:readable_project_ids]
options[:readable_project_ids].include?(project.id)
else
Ability.allowed?(options[:user], :read_project, project)
end
end
end
end