Method: ActionPolicy::Policy::Authorization#initialize

Defined in:
lib/action_policy/policy/authorization.rb

#initialize(record = nil, **params) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/action_policy/policy/authorization.rb', line 47

def initialize(record = nil, **params)
  super(record)

  @authorization_context = {}

  self.class.authorization_targets.each do |id, opts|
    raise AuthorizationContextMissing, id unless params.key?(id) || opts[:optional]

    val = params.fetch(id, nil)

    raise AuthorizationContextMissing, id if val.nil? && opts[:allow_nil] != true

    authorization_context[id] = instance_variable_set("@#{id}", val)
  end

  authorization_context.freeze
end