Module: Glib::Auth::Policy::Overrides

Defined in:
app/controllers/concerns/glib/auth/policy.rb

Instance Method Summary collapse

Instance Method Details

#policy(record) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'app/controllers/concerns/glib/auth/policy.rb', line 23

def policy(record)
  return @__pundit_policy if defined? @__pundit_policy

  if record.is_a?(Symbol) && record.to_s.ends_with?('_admin')
    policy_class = CommonAdminPolicy
  else
    policy_class = Pundit::PolicyFinder.new(record).policy
  end
  raise "Policy not found for #{record.class}" unless policy_class
  @__pundit_policy = policy_class.new(current_user, record, self, request, params, *policy_class.args_builder.call(self))
end