Class: Sunrise::Models::Ability

Inherits:
Object
  • Object
show all
Includes:
CanCanNamespace::Ability
Defined in:
lib/sunrise/models/ability.rb

Direct Known Subclasses

Ability

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(user, context = nil) ⇒ Ability

Returns a new instance of Ability.



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/sunrise/models/ability.rb', line 10

def initialize(user, context = nil)
  alias_action :delete, :to => :destroy

  @user = (user || ::User.new) # guest user (not logged in)
  @context = context
  
  if @user.persisted? && @user.role_type
    send @user.role_type.code
  else
    guest
  end
end

Instance Attribute Details

#contextObject

Returns the value of attribute context.



8
9
10
# File 'lib/sunrise/models/ability.rb', line 8

def context
  @context
end

#userObject

Returns the value of attribute user.



8
9
10
# File 'lib/sunrise/models/ability.rb', line 8

def user
  @user
end

Instance Method Details

#adminObject



23
24
25
26
27
28
29
30
31
32
# File 'lib/sunrise/models/ability.rb', line 23

def admin
  can :manage, :all
  can :manage, :all, :context => :sunrise
  
  # User cannot destroy self account
  cannot :destroy, ::User, :id => @user.id, :context => :sunrise

  # User cannot destroy root structure
  cannot :destroy, ::Structure, :structure_type_id => ::StructureType.main.id, :context => :sunrise
end