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 |
# File 'lib/action_policy/policy/aliases.rb', line 31 def resolve_rule(activity) self.class.lookup_alias(activity) || (activity if respond_to?(activity)) || self.class.lookup_default_rule || super end |