Sha256: 1c4ada3eda6a41c9fa0592b8f0741b6673f44fda19d55b6a81db3e217d1b8757

Contents?: true

Size: 1.3 KB

Versions: 14

Compression:

Stored size: 1.3 KB

Contents

module EnjuSubject
  class Ability
    include CanCan::Ability
        
    def initialize(user, ip_address = nil)
      case user.try(:role).try(:name)
      when 'Administrator'
        can :manage, [
          Classification,
          Subject
        ]
        if LibraryGroup.site_config.network_access_allowed?(ip_address)
          can [:read, :create, :update], ClassificationType
          can [:destroy, :delete], ClassificationType do |classification_type|
            classification_type.classifications.empty?
          end
          can :manage, [
            Classification,
            Subject,
            SubjectHeadingType,
            SubjectType
          ]
        else
          can :read, [
            ClassificationType,
            SubjectHeadingType,
            SubjectType
          ]
        end
      when 'Librarian'
        can :read, [
          Classification,
          ClassificationType,
          Subject,
          SubjectType,
          SubjectHeadingType
        ]
      when 'User'
        can :read, [
          Classification,
          ClassificationType,
          Subject,
          SubjectHeadingType
        ]
      else
        can :read, [
          Classification,
          ClassificationType,
          Subject,
          SubjectHeadingType
        ]
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
enju_subject-0.1.0.pre26 app/models/enju_subject/ability.rb
enju_subject-0.1.0.pre25 app/models/enju_subject/ability.rb
enju_trunk_subject-1.0.4 app/models/enju_subject/ability.rb
enju_subject-0.1.0.pre24 app/models/enju_subject/ability.rb
enju_subject-0.1.0.pre23 app/models/enju_subject/ability.rb
enju_subject-0.1.0.pre22 app/models/enju_subject/ability.rb
enju_subject-0.1.0.pre21 app/models/enju_subject/ability.rb
enju_subject-0.1.0.pre20 app/models/enju_subject/ability.rb
enju_subject-0.1.0.pre19 app/models/enju_subject/ability.rb
enju_subject-0.1.0.pre18 app/models/enju_subject/ability.rb
enju_subject-0.1.0.pre17 app/models/enju_subject/ability.rb
enju_subject-0.1.0.pre16 app/models/enju_subject/ability.rb
enju_subject-0.1.0.pre15 app/models/enju_subject/ability.rb
enju_subject-0.1.0.pre14 app/models/enju_subject/ability.rb