summaryrefslogtreecommitdiff
path: root/app/graphql/types/permission_types/merge_request.rb
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@vanlanduyt.co>2018-06-25 10:59:00 +0200
committerBob Van Landuyt <bob@vanlanduyt.co>2018-06-28 13:50:17 +0200
commit54b56f20b7a70d3e6284c8105eb3d4a568e255b0 (patch)
treede18fca7bd27dcd55817e21c4654cf36c1430c5f /app/graphql/types/permission_types/merge_request.rb
parent627236c9edd7f085ec5070ef7fcfbcbfc9b6de78 (diff)
downloadgitlab-ce-54b56f20b7a70d3e6284c8105eb3d4a568e255b0.tar.gz
Expose permissions on types in GraphQL
This adds a reusable way to expose permissions for a user to types in GraphQL.
Diffstat (limited to 'app/graphql/types/permission_types/merge_request.rb')
-rw-r--r--app/graphql/types/permission_types/merge_request.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/app/graphql/types/permission_types/merge_request.rb b/app/graphql/types/permission_types/merge_request.rb
new file mode 100644
index 00000000000..5c21f6ee9c6
--- /dev/null
+++ b/app/graphql/types/permission_types/merge_request.rb
@@ -0,0 +1,17 @@
+module Types
+ module PermissionTypes
+ class MergeRequest < BasePermissionType
+ present_using MergeRequestPresenter
+ description 'Check permissions for the current user on a merge request'
+ graphql_name 'MergeRequestPermissions'
+
+ abilities :read_merge_request, :admin_merge_request,
+ :update_merge_request, :create_note
+
+ permission_field :push_to_source_branch, method: :can_push_to_source_branch?
+ permission_field :remove_source_branch, method: :can_remove_source_branch?
+ permission_field :cherry_pick_on_current_merge_request, method: :can_cherry_pick_on_current_merge_request?
+ permission_field :revert_on_current_merge_request, method: :can_revert_on_current_merge_request?
+ end
+ end
+end