Sha256: 18637fb8bc499c42d6c66ecd06417ae2ba36ac32cb6db441dade5c37bbcf0bda

Contents?: true

Size: 1019 Bytes

Versions: 19

Compression:

Stored size: 1019 Bytes

Contents

#module EnjuBookmark
  class Ability
    include CanCan::Ability

    def initialize(user, ip_address = nil)
      case user.try(:role).try(:name)
      when 'Administrator'
        can :manage, [
          Bookmark,
          BookmarkStat,
          BookmarkStatHasManifestation,
          Tag
        ]
      when 'Librarian'
        can [:read, :create, :update], BookmarkStat
        can :read, BookmarkStatHasManifestation
        can :manage, [
          Bookmark,
          Tag
        ]
      when 'User'
        can [:index, :create], Bookmark
        can :show, Bookmark do |bookmark|
          if bookmark.user == user
            true
          elsif user.share_bookmarks
            true
          else
            false
          end
        end
        can [:update, :destroy, :delete], Bookmark do |bookmark|
          bookmark.user == user
        end
        can :read, BookmarkStat
        can :read, Tag
      else
        can :read, BookmarkStat
        can :read, Tag
      end
    end
  end
#end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
enju_bookmark-0.2.0.beta.2 spec/dummy/app/models/ability.rb
enju_bookmark-0.2.0.beta.1 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.3 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre23 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre22 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre21 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre20 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre19 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre18 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre17 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre16 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre15 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre14 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre13 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre12 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre11 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre10 spec/dummy/app/models/ability.rb
enju_bookmark-0.1.2.pre9 spec/dummy/app/models/ability.rb