Sha256: f5f357fcd3637cd50efefac1966b20be1b509909af8a998d3bd12569d112a230

Contents?: true

Size: 1.4 KB

Versions: 7

Compression:

Stored size: 1.4 KB

Contents

class Ability
  include CanCan::Ability

  def initialize(user, ip_address = nil)
    case user.try(:role).try(:name)
    when 'Administrator'
      can [:read, :create, :update], Bookstore
      can :manage, BudgetType
      can :destroy, Bookstore do |bookstore|
        if defined?(EnjuPurchaseRequest)
          bookstore.order_lists.empty? and bookstore.items.empty?
        else
          bookstore.items.empty?
        end
      end
      can [:read, :create, :update], Library
      can :destroy, Library do |library|
        library.shelves.empty? and !library.web?
      end
      can [:read, :update], LibraryGroup
      can [:read, :update], RequestStatusType
      can [:read, :update], RequestType
      can [:read, :create, :update], Shelf
      can :destroy, Shelf do |shelf|
        shelf.items.empty?
      end
      can :manage, SearchEngine
      can :manage, Subscribe
      can :manage, Subscription
    when 'Librarian'
      can :read, Bookstore
      can :read, BudgetType
      can :read, Library
      can :read, LibraryGroup
      can :read, RequestStatusType
      can :read, RequestType
      can :read, Shelf
      can :read, SearchEngine
      can :manage, Subscribe
      can :manage, Subscription
    when 'User'
      can :read, Shelf
      can :read, Library
      can :read, LibraryGroup
    else
      can :read, Library
      can :read, LibraryGroup
      can :read, Shelf
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
enju_library-0.1.0.pre6 spec/dummy/app/models/ability.rb
enju_library-0.1.0.pre5 spec/dummy/app/models/ability.rb
enju_library-0.1.0.pre4 spec/dummy/app/models/ability.rb
enju_library-0.1.0.pre3 spec/dummy/app/models/ability.rb
enju_library-0.1.0.pre2 spec/dummy/app/models/ability.rb
enju_library-0.1.0.pre spec/dummy/app/models/ability.rb
enju_library-0.0.2 spec/dummy/app/models/ability.rb