Sha256: 51bda972e6dde38e0a80375064baf8decd48110593b1d50e61742de6c407a938

Contents?: true

Size: 910 Bytes

Versions: 8

Compression:

Stored size: 910 Bytes

Contents

module EnjuEvent
  class Ability
    include CanCan::Ability
  
    def initialize(user, ip_address = nil)
      case user.try(:role).try(:name)
      when 'Administrator'
        can [:read, :create], EventCategory
        can [:update, :destroy, :delete], EventCategory do |event_category|
          !['unknown', 'closed'].include?(event_category.name)
        end
        can :manage, [
          Event,
          EventImportFile,
          Participate
        ]
        can :read, EventImportResult
      when 'Librarian'
        can :manage, [
          Event,
          EventImportFile,
          Participate
        ]
        can :read, [
          EventCategory,
          EventImportResult
        ]
      when 'User'
        can :read, [
          Event,
          EventCategory
        ]
      else
        can :read, [
          Event,
          EventCategory
        ]
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
enju_event-0.1.17.pre15 app/models/enju_event/ability.rb
enju_event-0.1.17.pre14 app/models/enju_event/ability.rb
enju_event-0.1.17.pre13 app/models/enju_event/ability.rb
enju_event-0.1.17.pre12 app/models/enju_event/ability.rb
enju_event-0.1.17.pre11 app/models/enju_event/ability.rb
enju_event-0.1.17.pre10 app/models/enju_event/ability.rb
enju_event-0.1.17.pre9 app/models/enju_event/ability.rb
enju_event-0.1.17.pre8 app/models/enju_event/ability.rb