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

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

Instance Method Summary collapse

Instance Method Details

#policy(record, policy_name = nil, attributes = {}) ⇒ Object



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

def policy(record, policy_name = nil, attributes = {})
  policy_name ||= record

  @__pundit_policies ||= {}
  return @__pundit_policies[policy_name] if @__pundit_policies[policy_name]

  if policy_name.is_a?(Symbol) && policy_name.to_s.ends_with?('_admin')
    policy_class = CommonAdminPolicy
  else
    policy_class = Pundit::PolicyFinder.new(policy_name).policy
  end

  raise "Policy not found for #{policy_name.is_a?(Symbol) || policy_name.is_a?(Class) ? policy_name : policy_name.class}" unless policy_class

  @__pundit_policies[policy_name] = policy_class.new(current_user, record, policy_name, self, request, params, attributes: attributes)
end

#policy_scope(*args) ⇒ Object

Override



42
43
44
# File 'app/controllers/concerns/glib/auth/policy.rb', line 42

def policy_scope(*args)
  super
end