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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-07-20 15:26:25 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-07-20 15:26:25 +0300
commita09983ae35713f5a2bbb100981116d31ce99826e (patch)
tree2ee2af7bd104d57086db360a7e6d8c9d5d43667a /app/serializers/fork_namespace_entity.rb
parent18c5ab32b738c0b6ecb4d0df3994000482f34bd8 (diff)
Add latest changes from gitlab-org/gitlab@13-2-stable-ee
Diffstat (limited to 'app/serializers/fork_namespace_entity.rb')
-rw-r--r--app/serializers/fork_namespace_entity.rb52
1 files changed, 52 insertions, 0 deletions
diff --git a/app/serializers/fork_namespace_entity.rb b/app/serializers/fork_namespace_entity.rb
new file mode 100644
index 00000000000..068862e0951
--- /dev/null
+++ b/app/serializers/fork_namespace_entity.rb
@@ -0,0 +1,52 @@
+# frozen_string_literal: true
+
+class ForkNamespaceEntity < Grape::Entity
+ include ActionView::Helpers::NumberHelper
+ include RequestAwareEntity
+ include MarkupHelper
+
+ expose :id, :name, :description, :visibility, :full_name,
+ :created_at, :updated_at, :avatar_url
+
+ expose :fork_path do |namespace, options|
+ project_forks_path(options[:project], namespace_key: namespace.id)
+ end
+
+ expose :forked_project_path do |namespace, options|
+ if forked_project = namespace.find_fork_of(options[:project])
+ project_path(forked_project)
+ end
+ end
+
+ expose :permission do |namespace, options|
+ membership(options[:current_user], namespace)&.human_access
+ end
+
+ expose :relative_path do |namespace|
+ polymorphic_path(namespace)
+ end
+
+ expose :markdown_description do |namespace|
+ markdown_description(namespace)
+ end
+
+ expose :can_create_project do |namespace, options|
+ options[:current_user].can?(:create_projects, namespace)
+ end
+
+ private
+
+ # rubocop: disable CodeReuse/ActiveRecord
+ def membership(user, object)
+ return unless user
+
+ @membership ||= user.members.find_by(source: object)
+ end
+ # rubocop: enable CodeReuse/ActiveRecord
+
+ def markdown_description(namespace)
+ markdown_field(namespace, :description)
+ end
+end
+
+ForkNamespaceEntity.prepend_if_ee('EE::ForkNamespaceEntity')