Sha256: db6d4eb348b5636795938b3d212b7c2d63bdd440ffd267182714313df8b98b1c

Contents?: true

Size: 859 Bytes

Versions: 10

Compression:

Stored size: 859 Bytes

Contents

class Ability
  include CanCan::Ability

  def initialize(user, ip_address = nil)
    case user.try(:role).try(:name)
    when 'Administrator'
      can [:read, :create, :update], Manifestation
      can :destroy, Manifestation do |manifestation|
        if defined?(EnjuCirculation)
          manifestation.items.empty? and !manifestation.periodical_master? and !manifestation.is_reserved?
        else
          manifestation.items.empty? and !manifestation.periodical_master?
        end
      end
    when 'Librarian'
      can [:read, :create, :update], Manifestation
      can :destroy, Manifestation do |manifestation|
        false
      end
    when 'User'
      can :read, Manifestation do |manifestation|
        manifestation.required_role_id <= 2
      end
      can :edit, Manifestation
    else
      can :read, Manifestation
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
enju_oai-0.1.0.pre8 spec/dummy/app/models/ability.rb
enju_oai-0.1.0.pre7 spec/dummy/app/models/ability.rb
enju_oai-0.1.0.pre6 spec/dummy/app/models/ability.rb
enju_oai-0.1.0.pre5 spec/dummy/app/models/ability.rb
enju_oai-0.1.0.pre4 spec/dummy/app/models/ability.rb
enju_oai-0.1.0.pre3 spec/dummy/app/models/ability.rb
enju_oai-0.1.0.pre2 spec/dummy/app/models/ability.rb
enju_oai-0.1.0.pre spec/dummy/app/models/ability.rb
enju_oai-0.0.4 spec/dummy/app/models/ability.rb
enju_oai-0.0.3 spec/dummy/app/models/ability.rb