Sha256: 90364915540be7ad17f8cb654d41f73d3edd2533baf6acc01370de43b261ab8d

Contents?: true

Size: 767 Bytes

Versions: 12

Compression:

Stored size: 767 Bytes

Contents

module EnjuPurchaseRequest
  class Ability
    include CanCan::Ability
  
    def initialize(user, ip_address = nil)
      case user.try(:role).try(:name)
      when 'Administrator'
        can [:destroy, :delete], Bookstore do |bookstore|
          bookstore.order_lists.empty? and bookstore.items.empty?
        end
        can :manage, [
          Order,
          OrderList,
          PurchaseRequest
        ]
      when 'Librarian'
        can :manage, [
          Order,
          OrderList,
          PurchaseRequest
        ]
      when 'User'
        can [:index, :create], PurchaseRequest
        can [:show, :update, :destroy, :delete], PurchaseRequest do |purchase_request|
          purchase_request.user == user
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
enju_purchase_request-0.1.1 app/models/enju_purchase_request/ability.rb
enju_purchase_request-0.1.0 app/models/enju_purchase_request/ability.rb
enju_purchase_request-0.1.0.pre15 app/models/enju_purchase_request/ability.rb
enju_purchase_request-0.1.0.pre14 app/models/enju_purchase_request/ability.rb
enju_purchase_request-0.1.0.pre13 app/models/enju_purchase_request/ability.rb
enju_purchase_request-0.1.0.pre12 app/models/enju_purchase_request/ability.rb
enju_purchase_request-0.1.0.pre11 app/models/enju_purchase_request/ability.rb
enju_purchase_request-0.1.0.pre10 app/models/enju_purchase_request/ability.rb
enju_purchase_request-0.1.0.pre9 app/models/enju_purchase_request/ability.rb
enju_purchase_request-0.1.0.pre8 app/models/enju_purchase_request/ability.rb
enju_purchase_request-0.1.0.pre7 app/models/enju_purchase_request/ability.rb
enju_purchase_request-0.1.0.pre6 app/models/enju_purchase_request/ability.rb