Module: ActionPolicy::Behaviour::ClassMethods

Defined in:
lib/action_policy/behaviour.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#authorization_targetsObject



112
113
114
115
116
117
118
119
120
# File 'lib/action_policy/behaviour.rb', line 112

def authorization_targets
  return @authorization_targets if instance_variable_defined?(:@authorization_targets)

  @authorization_targets = if superclass.respond_to?(:authorization_targets)
    superclass.authorization_targets.dup
  else
    {}
  end
end

#authorize(key, through: nil) ⇒ Object

Configure authorization context.

For example:

class ApplicationController < ActionController::Base
  # Pass the value of `current_user` to authorization as `user`
  authorize :user, through: :current_user
end

# Assuming that in your ApplicationPolicy
class ApplicationPolicy < ActionPolicy::Base
  authorize :user
end


107
108
109
110
# File 'lib/action_policy/behaviour.rb', line 107

def authorize(key, through: nil)
  method_or_proc = through || key
  authorization_targets[key] = method_or_proc
end