Sha256: 393b4862b7cab8d137d03029a06a1f1dca6ece5410c8e55e6fbb1b8c8f6715b6

Contents?: true

Size: 968 Bytes

Versions: 1

Compression:

Stored size: 968 Bytes

Contents

# frozen_string_literal: true

module Sunrise
  module Models
    class Ability
      include CanCan::Ability

      attr_accessor :context, :user

      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

      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
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sunrise-cms-1.1.1 lib/sunrise/models/ability.rb