class GraphQR::Policies::PunditProvider
This is a wrapper around Pundit provided to keep all PolicyProviders with the same methods.
If you want to use the Pundit integration with our extensions you should pass:
{ policy_provider: GraphQR::Policies::PunditProvider.new(policy_context: pundit_user) }
To the Schema context.
Attributes
policy_context[R]
Public Class Methods
new(policy_context:)
click to toggle source
# File lib/graphqr/policies/pundit_provider.rb, line 22 def initialize(policy_context:) @policy_context = policy_context end
Public Instance Methods
allowed?(action:, record:, policy_class: nil)
click to toggle source
# File lib/graphqr/policies/pundit_provider.rb, line 26 def allowed?(action:, record:, policy_class: nil) policy = policy_for(record: record, policy_class: policy_class) policy.apply(action) end
permitted_field?(record:, field_name:)
click to toggle source
# File lib/graphqr/policies/pundit_provider.rb, line 36 def permitted_field?(record:, field_name:) policy = policy_for(record: record) policy.permitted_fields.include?(field_name) end