Module: ActionPolicy::Behaviours::PolicyFor

Included in:
ActionPolicy::Behaviour, Policy::Core
Defined in:
lib/action_policy/behaviours/policy_for.rb

Overview

Adds ‘policy_for` method

Instance Method Summary collapse

Instance Method Details

#authorization_contextObject

Raises:

  • (NotImplementedError)


14
15
16
# File 'lib/action_policy/behaviours/policy_for.rb', line 14

def authorization_context
  raise NotImplementedError, "Please, define `authorization_context` method!"
end

#authorization_namespaceObject



18
19
20
# File 'lib/action_policy/behaviours/policy_for.rb', line 18

def authorization_namespace
  # override to provide specific authorization namespace
end

#policy_for(record:, with: nil, namespace: nil) ⇒ Object

Returns policy instance for the record.



8
9
10
11
12
# File 'lib/action_policy/behaviours/policy_for.rb', line 8

def policy_for(record:, with: nil, namespace: nil)
  namespace ||= authorization_namespace
  policy_class = with || ::ActionPolicy.lookup(record, namespace: namespace)
  policy_class.new(record, authorization_context)
end