Class: Ability

Inherits:
Object
  • Object
show all
Includes:
CanCan::Ability
Defined in:
lib/generators/esp_permissions/install/templates/app/models/ability.rb

Instance Method Summary collapse

Constructor Details

#initialize(user) ⇒ Ability

Returns a new instance of Ability.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/generators/esp_permissions/install/templates/app/models/ability.rb', line 5

def initialize(user)

  return unless user

  alias_action :create, :read, :update, :destroy, :to => :modify

  can :modify, Context do | context |
    user.permissions.for_roles(:manager).for_context(context).exists?
  end

  can :modify, Permission do | permission |
    can? :modify, permission.context
  end

  can :modify, Permission do | permission |
    !permission.context && user.manager?
  end

  can :modify, User do
    user.manager?
  end
end