class Sunrise::Models::Ability

Attributes

context[RW]
user[RW]

Public Class Methods

new(user, context = nil) click to toggle source
# 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

Public Instance Methods

admin() click to toggle source
# 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