diff options
Diffstat (limited to 'app/serializers/deploy_key_entity.rb')
-rw-r--r-- | app/serializers/deploy_key_entity.rb | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/app/serializers/deploy_key_entity.rb b/app/serializers/deploy_key_entity.rb index 653316ce4d2..486189b84ca 100644 --- a/app/serializers/deploy_key_entity.rb +++ b/app/serializers/deploy_key_entity.rb @@ -16,6 +16,7 @@ class DeployKeyEntity < Grape::Entity end end expose :can_edit + expose :user, as: :owner, using: ::API::Entities::UserBasic, if: -> (_, opts) { can_read_owner?(opts) } private @@ -24,6 +25,10 @@ class DeployKeyEntity < Grape::Entity Ability.allowed?(options[:user], :update_deploy_keys_project, object.deploy_keys_project_for(options[:project])) end + def can_read_owner?(opts) + opts[:with_owner] && Ability.allowed?(options[:user], :read_user, object.user) + end + def allowed_to_read_project?(project) if options[:readable_project_ids] options[:readable_project_ids].include?(project.id) |