Module: GraphQL::Permissions::DSL

Included in:
Types::BasePermissionsInterface, Types::BasePermissionsObject
Defined in:
lib/graphql/permissions/dsl.rb

Instance Method Summary collapse

Instance Method Details

#included(klass) ⇒ Object



6
7
8
9
# File 'lib/graphql/permissions/dsl.rb', line 6

def included(klass)
  super
  klass.extend(GraphQL::Permissions::DSL)
end

#permission(action, **options, &block) ⇒ void

This method returns an undefined value.

Parameters:

  • name (Symbol)

    The name of the permission.



13
14
15
16
17
18
19
20
21
# File 'lib/graphql/permissions/dsl.rb', line 13

def permission(action, **options, &block)
  field(:"can_#{action}", 'Boolean',
        description: "Whether the current user can #{action} this object.",
        **options, null: false, resolver_method: :"can_#{action}?")

  define_method(:"can_#{action}?") do
    block ? instance_exec(&block) : GraphQL::Permissions.default_permission_handler.call(action, object, context)
  end
end