Module: Archipelago::CanCanAdapter

Defined in:
lib/archipelago/cancan_adapter.rb

Instance Method Summary collapse

Instance Method Details

#authorize!(action, record) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/archipelago/cancan_adapter.rb', line 5

def authorize!(action, record)
  ability = current_ability
  unless ability.can?(action, record)
    raise Archipelago::Forbidden, "not allowed to #{action} this #{record.class}"
  end

  record
end

#current_abilityObject



14
15
16
17
18
19
20
21
22
23
# File 'lib/archipelago/cancan_adapter.rb', line 14

def current_ability
  ability_builder = Archipelago.configuration.current_ability
  if ability_builder
    ability_builder.call(current_user)
  elsif defined?(::Ability)
    ::Ability.new(current_user)
  else
    raise Archipelago::Error, "No ability class configured. Set Archipelago.configuration.current_ability or define an Ability class."
  end
end