class GraphQL::Pundit::Instrumenters::Authorization::AuthorizationResolver
This does the actual Pundit
authorization
Attributes
current_user[R]
old_resolver[R]
options[R]
Public Class Methods
new(current_user, old_resolver, options)
click to toggle source
# File lib/graphql-pundit/instrumenters/authorization.rb, line 14 def initialize(current_user, old_resolver, options) @current_user = current_user @old_resolver = old_resolver @options = options end
Public Instance Methods
call(root, arguments, context)
click to toggle source
# File lib/graphql-pundit/instrumenters/authorization.rb, line 20 def call(root, arguments, context) raise ::Pundit::NotAuthorizedError unless authorize(root, arguments, context) old_resolver.call(root, arguments, context) rescue ::Pundit::NotAuthorizedError raise GraphQL::ExecutionError, "You're not authorized to do this" if options[:raise] end
Private Instance Methods
policy(record)
click to toggle source
# File lib/graphql-pundit/instrumenters/authorization.rb, line 44 def policy(record) options[:policy] || record end
query()
click to toggle source
# File lib/graphql-pundit/instrumenters/authorization.rb, line 40 def query @query ||= "#{options[:query]}?" end
record(root, arguments, context)
click to toggle source
# File lib/graphql-pundit/instrumenters/authorization.rb, line 48 def record(root, arguments, context) if options[:record].respond_to?(:call) options[:record].call(root, arguments, context) else options[:record] || root end end