Module: ActionPolicy::Policy::Aliases
- Included in:
- Base
- Defined in:
- lib/action_policy/policy/aliases.rb
Overview
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).
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- DEFAULT =
:__default__
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
26 27 28 |
# File 'lib/action_policy/policy/aliases.rb', line 26 def included(base) base.extend ClassMethods end |
Instance Method Details
#resolve_rule(activity) ⇒ Object
31 32 33 34 35 36 37 |
# 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 |