class GraphQL::Pundit::Instrumenters::Authorization

Instrumenter that supplies `authorize`

Attributes

current_user[R]

Public Class Methods

new(current_user = :current_user) click to toggle source
# File lib/graphql-pundit/instrumenters/authorization.rb, line 61
def initialize(current_user = :current_user)
  @current_user = current_user
end

Public Instance Methods

instrument(_type, field) click to toggle source
# File lib/graphql-pundit/instrumenters/authorization.rb, line 65
def instrument(_type, field)
  return field unless field.metadata[:authorize]
  old_resolver = field.resolve_proc
  resolver = AuthorizationResolver.new(current_user,
                                       old_resolver,
                                       field.metadata[:authorize])
  field.redefine do
    resolve resolver
  end
end