Module: ActionPolicy::Behaviour::ClassMethods

Defined in:
lib/action_policy/behaviour.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#authorization_targetsObject



82
83
84
85
86
87
88
89
90
91
# File 'lib/action_policy/behaviour.rb', line 82

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


77
78
79
80
# File 'lib/action_policy/behaviour.rb', line 77

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