Module: ActionPolicy::Authorizer

Defined in:
lib/action_policy/authorizer.rb

Overview

The main purpose of this module is to extact authorize actions from everything else to make it easily testable.

Class Method Summary collapse

Class Method Details

.authorize(policy, rule) ⇒ Object



30
31
32
# File 'lib/action_policy/authorizer.rb', line 30

def authorize(policy, rule)
  policy.apply_r(rule)
end

.call(policy, rule) ⇒ Object

Performs authorization, raises an exception when check failed.



23
24
25
26
27
28
# File 'lib/action_policy/authorizer.rb', line 23

def call(policy, rule)
  res = authorize(policy, rule)
  return if res.success?

  raise(::ActionPolicy::Unauthorized.new(policy, rule, res))
end

.scopify(target, policy, **options) ⇒ Object

Applies scope to the target



35
36
37
# File 'lib/action_policy/authorizer.rb', line 35

def scopify(target, policy, **options)
  policy.apply_scope(target, **options)
end