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