Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/admin/abuse_report_details_entity.rb4
-rw-r--r--app/serializers/award_emoji_entity.rb1
-rw-r--r--app/serializers/ci/downloadable_artifact_entity.rb9
-rw-r--r--app/serializers/deploy_keys/basic_deploy_key_entity.rb13
-rw-r--r--app/serializers/deploy_keys/deploy_key_serializer.rb1
-rw-r--r--app/serializers/diff_viewer_entity.rb1
-rw-r--r--app/serializers/group_link/group_group_link_entity.rb18
-rw-r--r--app/serializers/group_link/group_link_entity.rb17
-rw-r--r--app/serializers/group_link/project_group_link_entity.rb19
-rw-r--r--app/serializers/merge_request_poll_widget_entity.rb2
-rw-r--r--app/serializers/merge_requests/pipeline_entity.rb7
-rw-r--r--app/serializers/personal_access_token_entity.rb2
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