class ActiveAdmin::CanCanAdapter

Public Instance Methods

authorized?(action, subject = nil) click to toggle source
# File lib/active_admin/cancan_adapter.rb, line 10
def authorized?(action, subject = nil)
  cancan_ability.can?(action, subject)
end
cancan_ability() click to toggle source
# File lib/active_admin/cancan_adapter.rb, line 14
def cancan_ability
  @cancan_ability ||= initialize_cancan_ability
end
scope_collection(collection, action = ActiveAdmin::Auth::READ) click to toggle source
# File lib/active_admin/cancan_adapter.rb, line 18
def scope_collection(collection, action = ActiveAdmin::Auth::READ)
  collection.accessible_by(cancan_ability, action)
end

Private Instance Methods

initialize_cancan_ability() click to toggle source

The setting allows the class to be stored as a string to enable reloading in development.

# File lib/active_admin/cancan_adapter.rb, line 26
def initialize_cancan_ability
  ability_class_name = resource.namespace.cancan_ability_class

  if ability_class_name.is_a?(String)
    ability_class = ActiveSupport::Dependencies.constantize(ability_class_name)
  else
    ability_class = ability_class_name
  end

  ability_class.new(user)
end