Class: Sunrise::Models::Ability

Inherits:
Object
  • Object
show all
Includes:
CanCan::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
33
34
# 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
  cannot :destroy, ::User, id: @user.id

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