diff options
Diffstat (limited to 'app/serializers')
-rw-r--r-- | app/serializers/admin/abuse_report_details_entity.rb | 4 | ||||
-rw-r--r-- | app/serializers/award_emoji_entity.rb | 1 | ||||
-rw-r--r-- | app/serializers/ci/downloadable_artifact_entity.rb | 9 | ||||
-rw-r--r-- | app/serializers/deploy_keys/basic_deploy_key_entity.rb | 13 | ||||
-rw-r--r-- | app/serializers/deploy_keys/deploy_key_serializer.rb | 1 | ||||
-rw-r--r-- | app/serializers/diff_viewer_entity.rb | 1 | ||||
-rw-r--r-- | app/serializers/group_link/group_group_link_entity.rb | 18 | ||||
-rw-r--r-- | app/serializers/group_link/group_link_entity.rb | 17 | ||||
-rw-r--r-- | app/serializers/group_link/project_group_link_entity.rb | 19 | ||||
-rw-r--r-- | app/serializers/merge_request_poll_widget_entity.rb | 2 | ||||
-rw-r--r-- | app/serializers/merge_requests/pipeline_entity.rb | 7 | ||||
-rw-r--r-- | app/serializers/personal_access_token_entity.rb | 2 |
12 files changed, 56 insertions, 38 deletions
diff --git a/app/serializers/admin/abuse_report_details_entity.rb b/app/serializers/admin/abuse_report_details_entity.rb index 77b85f239f7..a654482b989 100644 --- a/app/serializers/admin/abuse_report_details_entity.rb +++ b/app/serializers/admin/abuse_report_details_entity.rb @@ -76,5 +76,9 @@ module Admin expose :report do |report| ReportedContentEntity.represent(report) end + + expose :upload_note_attachment_path do |report| + upload_path('abuse_report', id: report.id) + end end end diff --git a/app/serializers/award_emoji_entity.rb b/app/serializers/award_emoji_entity.rb index 6ca782d8203..212931a2fa9 100644 --- a/app/serializers/award_emoji_entity.rb +++ b/app/serializers/award_emoji_entity.rb @@ -3,5 +3,4 @@ class AwardEmojiEntity < Grape::Entity expose :name expose :user, using: API::Entities::UserSafe - expose :url end diff --git a/app/serializers/ci/downloadable_artifact_entity.rb b/app/serializers/ci/downloadable_artifact_entity.rb index 2e8aafcee43..5c9bb351314 100644 --- a/app/serializers/ci/downloadable_artifact_entity.rb +++ b/app/serializers/ci/downloadable_artifact_entity.rb @@ -5,13 +5,12 @@ module Ci include RequestAwareEntity expose :artifacts do |pipeline, options| - artifacts = pipeline.downloadable_artifacts + downloadable_artifacts = pipeline.downloadable_artifacts + project = pipeline.project - if Feature.enabled?(:non_public_artifacts) - artifacts = artifacts.select { |artifact| can?(request.current_user, :read_job_artifacts, artifact) } - end + artifacts = downloadable_artifacts.select { |artifact| can?(request.current_user, :read_job_artifacts, artifact) } - BuildArtifactEntity.represent(artifacts, options.merge(project: pipeline.project)) + BuildArtifactEntity.represent(artifacts, options.merge(project: project)) end end end diff --git a/app/serializers/deploy_keys/basic_deploy_key_entity.rb b/app/serializers/deploy_keys/basic_deploy_key_entity.rb index 4a3dd3c8f08..805d54d641a 100644 --- a/app/serializers/deploy_keys/basic_deploy_key_entity.rb +++ b/app/serializers/deploy_keys/basic_deploy_key_entity.rb @@ -2,6 +2,8 @@ module DeployKeys class BasicDeployKeyEntity < Grape::Entity + include RequestAwareEntity + expose :id expose :user_id expose :title @@ -14,6 +16,17 @@ module DeployKeys expose :updated_at expose :can_edit expose :user, as: :owner, using: ::API::Entities::UserBasic, if: -> (_, opts) { can_read_owner?(opts) } + expose :edit_path, if: -> (_, opts) { opts[:project] } do |deploy_key| + edit_project_deploy_key_path(options[:project], deploy_key) + end + + expose :enable_path, if: -> (_, opts) { opts[:project] } do |deploy_key| + enable_project_deploy_key_path(options[:project], deploy_key) + end + + expose :disable_path, if: -> (_, opts) { opts[:project] } do |deploy_key| + disable_project_deploy_key_path(options[:project], deploy_key) + end private diff --git a/app/serializers/deploy_keys/deploy_key_serializer.rb b/app/serializers/deploy_keys/deploy_key_serializer.rb index b00ef65696f..2e6291a95f2 100644 --- a/app/serializers/deploy_keys/deploy_key_serializer.rb +++ b/app/serializers/deploy_keys/deploy_key_serializer.rb @@ -3,5 +3,6 @@ module DeployKeys class DeployKeySerializer < BaseSerializer entity DeployKeyEntity + include WithPagination end end diff --git a/app/serializers/diff_viewer_entity.rb b/app/serializers/diff_viewer_entity.rb index f8d9778a3ee..294d50f5f10 100644 --- a/app/serializers/diff_viewer_entity.rb +++ b/app/serializers/diff_viewer_entity.rb @@ -5,6 +5,7 @@ class DiffViewerEntity < Grape::Entity expose :render_error, as: :error expose :render_error_message, as: :error_message expose :collapsed?, as: :collapsed + expose :generated?, as: :generated expose :whitespace_only do |_, options| options[:whitespace_only] end diff --git a/app/serializers/group_link/group_group_link_entity.rb b/app/serializers/group_link/group_group_link_entity.rb index f855d89f593..f6989e8afcd 100644 --- a/app/serializers/group_link/group_group_link_entity.rb +++ b/app/serializers/group_link/group_group_link_entity.rb @@ -8,14 +8,22 @@ module GroupLink GroupEntity.represent(group_link.shared_from, only: [:id, :full_name, :web_url]) end - private + expose :valid_roles do |group_link| + group_link.class.access_options + end - def can_admin_group_link?(group_link, options) - can?(current_user, admin_permission_name, group_link.shared_from) + expose :can_update do |group_link, options| + can_admin_group_link?(group_link, options) + end + + expose :can_remove do |group_link, options| + can_admin_group_link?(group_link, options) end - def admin_permission_name - :admin_group_member + private + + def can_admin_group_link?(group_link, options) + direct_member?(group_link, options) && can?(current_user, :admin_group_member, group_link.shared_from) end end end diff --git a/app/serializers/group_link/group_link_entity.rb b/app/serializers/group_link/group_link_entity.rb index 66645e736a9..1b8313c2536 100644 --- a/app/serializers/group_link/group_link_entity.rb +++ b/app/serializers/group_link/group_link_entity.rb @@ -15,10 +15,6 @@ module GroupLink expose :group_access, as: :integer_value end - expose :valid_roles do |group_link| - group_link.class.access_options - end - expose :is_shared_with_group_private do |group_link| !can_read_shared_group?(group_link) end @@ -43,14 +39,6 @@ module GroupLink end end - expose :can_update do |group_link, options| - can_admin_shared_from?(group_link, options) - end - - expose :can_remove do |group_link, options| - direct_member?(group_link, options) && can_admin_group_link?(group_link, options) - end - expose :is_direct_member do |group_link, options| direct_member?(group_link, options) end @@ -68,10 +56,5 @@ module GroupLink def direct_member?(group_link, options) group_link.shared_from == options[:source] end - - def can_admin_shared_from?(group_link, options) - direct_member?(group_link, options) && - can?(current_user, admin_permission_name, group_link.shared_from) - end end end diff --git a/app/serializers/group_link/project_group_link_entity.rb b/app/serializers/group_link/project_group_link_entity.rb index fbad69bf2c5..d763809d123 100644 --- a/app/serializers/group_link/project_group_link_entity.rb +++ b/app/serializers/group_link/project_group_link_entity.rb @@ -8,14 +8,23 @@ module GroupLink ProjectEntity.represent(group_link.shared_from, only: [:id, :full_name]) end - private + expose :valid_roles do |group_link| + if can?(current_user, :manage_owners, group_link) + Gitlab::Access.options_with_owner + else + Gitlab::Access.options + end + end - def can_admin_group_link?(group_link, options) - can?(current_user, :admin_project_group_link, group_link) + expose :can_update do |group_link, options| + direct_member?(group_link, options) && + can?(current_user, :admin_project_member, group_link.project) && + can?(current_user, :manage_group_link_with_owner_access, group_link) end - def admin_permission_name - :admin_project_member + expose :can_remove do |group_link, options| + direct_member?(group_link, options) && + can?(current_user, :destroy_project_group_link, group_link) end end end diff --git a/app/serializers/merge_request_poll_widget_entity.rb b/app/serializers/merge_request_poll_widget_entity.rb index cef3f4555df..3374cd46729 100644 --- a/app/serializers/merge_request_poll_widget_entity.rb +++ b/app/serializers/merge_request_poll_widget_entity.rb @@ -15,6 +15,8 @@ class MergeRequestPollWidgetEntity < Grape::Entity merge_request.project.merge_requests_ff_only_enabled end + expose :ff_merge_possible?, as: :ff_merge_possible + # User entities expose :merge_user, using: UserEntity diff --git a/app/serializers/merge_requests/pipeline_entity.rb b/app/serializers/merge_requests/pipeline_entity.rb index 83f168682db..81f68657e38 100644 --- a/app/serializers/merge_requests/pipeline_entity.rb +++ b/app/serializers/merge_requests/pipeline_entity.rb @@ -25,12 +25,11 @@ class MergeRequests::PipelineEntity < Grape::Entity expose :artifacts do |pipeline, options| rel = pipeline.downloadable_artifacts + project = pipeline.project - if Feature.enabled?(:non_public_artifacts, type: :development) - rel = rel.select { |artifact| can?(request.current_user, :read_job_artifacts, artifact) } - end + allowed_to_read_artifacts = rel.select { |artifact| can?(request.current_user, :read_job_artifacts, artifact) } - BuildArtifactEntity.represent(rel, options.merge(project: pipeline.project)) + BuildArtifactEntity.represent(allowed_to_read_artifacts, options.merge(project: project)) end expose :detailed_status, as: :status, with: DetailedStatusEntity do |pipeline| diff --git a/app/serializers/personal_access_token_entity.rb b/app/serializers/personal_access_token_entity.rb index 49dcdf12a6f..71c31a8191b 100644 --- a/app/serializers/personal_access_token_entity.rb +++ b/app/serializers/personal_access_token_entity.rb @@ -5,7 +5,7 @@ class PersonalAccessTokenEntity < AccessTokenEntityBase include Gitlab::Routing expose :revoke_path do |token, options| - revoke_profile_personal_access_token_path(token) + revoke_user_settings_personal_access_token_path(token) end end # rubocop: enable Gitlab/NamespacedClass |