Module: Glib::Auth::Policy
  
  
  
  
  
  
  
      - Extended by:
- ActiveSupport::Concern
    - Defined in:
- app/controllers/concerns/glib/auth/policy.rb
 
Defined Under Namespace
  
    
      Modules: ClassMethods, Overrides
    
  
    
      Classes: UnauthorizedError
    
  
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
    Instance Method Details
    
      
  
  
    #can?(action, record, attributes = {})  ⇒ Boolean 
  
  
  
  
    | 
54
55
56 | # File 'app/controllers/concerns/glib/auth/policy.rb', line 54
def can?(action, record, attributes = {})
  policy(record, nil, attributes).send("#{action}?")
end | 
 
    
      
  
  
    #cannot?(action, record)  ⇒ Boolean 
  
  
  
  
    | 
59
60
61 | # File 'app/controllers/concerns/glib/auth/policy.rb', line 59
def cannot?(action, record)
  !policy(record).send("#{action}?")
end | 
 
    
      
  
  
    #glib_authorize_resource(*args)  ⇒ Object 
  
  
  
  
    | 
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 | # File 'app/controllers/concerns/glib/auth/policy.rb', line 65
def glib_authorize_resource(*args)
  options = args.
  resource_name = args.first
  resource_name ||= controller_name.split('/').last.singularize
  if (resource_key = options[:class]).nil?
    policy_name = resource_name.camelize.constantize
  else
    policy_name = case resource_key
                  when false
                    resource_name.to_sym
                  when Symbol, Class
                    resource_key
                  else
                    raise "Invalid resource class: #{resource_key}"
    end
  end
  resource_instance = instance_variable_get("@#{resource_name}") || policy_name
  query = "#{action_name}?"
  policy_instance = policy(resource_instance, policy_name, options.except(:class))
  raise_access_denied(resource_instance, policy_instance) unless policy_instance.public_send(query)
end | 
 
    
      
  
  
    #resource_name_from_controller  ⇒ Object 
  
  
  
  
    | 
145
146
147 | # File 'app/controllers/concerns/glib/auth/policy.rb', line 145
def resource_name_from_controller
  params[:controller].split('/').last.singularize
end |