module ActionPolicy::Policy::Aliases
Adds rules aliases support and ability to specify the default rule.
class ApplicationPolicy include ActionPolicy::Policy::Core include ActionPolicy::Policy::Aliases # define which rule to use if `authorize!` called with # unknown rule default_rule :manage? alias_rule :publish?, :unpublish?, to: :update? end
Aliases
are used only during `authorize!` call (and do not act like real aliases).
Aliases
useful when combined with `CachedApply` (since we can cache only the target rule).
Constants
- DEFAULT
Public Class Methods
included(base)
click to toggle source
# File lib/action_policy/policy/aliases.rb, line 26 def included(base) base.extend ClassMethods end
Public Instance Methods
resolve_rule(activity)
click to toggle source
Calls superclass method
# File lib/action_policy/policy/aliases.rb, line 31 def resolve_rule(activity) self.class.lookup_alias(activity) || (activity if respond_to?(activity)) || (check_rule_naming(activity) if ActionPolicy.enforce_predicate_rules_naming) || self.class.lookup_default_rule || super end
Private Instance Methods
check_rule_naming(activity)
click to toggle source
# File lib/action_policy/policy/aliases.rb, line 39 def check_rule_naming(activity) unless activity[-1] == "?" raise NonPredicateRule.new(self, activity) end nil end