Sha256: f8b418f99032cc33c55909f113d6fd0aad3f83b8200392bd0624cd8fbb3a4182

Contents?: true

Size: 1011 Bytes

Versions: 24

Compression:

Stored size: 1011 Bytes

Contents

class Ability
  include CanCan::Ability

  def initialize(user)
    case user.try(:role).try(:name)
    when 'Administrator'
      can :manage, Answer
      can :manage, Question
    when 'Librarian'
      can :manage, Answer
      can :manage, Question
    when 'User'
      can [:index, :create], Answer
      can :show, Answer do |answer|
        if answer.user == user
          true
        elsif answer.question.shared
          true
        end
      end
      can [:update, :destroy], Answer do |answer|
        answer.user == user
      end
      can [:index, :create], Question
      can [:update, :destroy], Question do |question|
        question.user == user
      end
      can :show, Question do |question|
        question.user == user or question.shared
      end
    else
      can :index, Answer
      can :show, Answer do |answer|
        answer.question.shared
      end
      can :index, Question
      can :show, Question do |question|
        question.shared
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
enju_question-0.1.0.pre5 spec/dummy/app/models/ability.rb
enju_question-0.1.0.pre4 spec/dummy/app/models/ability.rb
enju_question-0.1.0.pre3 spec/dummy/app/models/ability.rb
enju_question-0.1.0.pre2 spec/dummy/app/models/ability.rb
enju_question-0.1.0.pre spec/dummy/app/models/ability.rb
enju_question-0.0.21 spec/dummy/app/models/ability.rb
enju_question-0.0.20 spec/dummy/app/models/ability.rb
enju_question-0.0.19 spec/dummy/app/models/ability.rb
enju_question-0.0.18 spec/dummy/app/models/ability.rb
enju_question-0.0.17 spec/dummy/app/models/ability.rb
enju_question-0.0.16 spec/dummy/app/models/ability.rb
enju_question-0.0.15 spec/dummy/app/models/ability.rb
enju_question-0.0.14 spec/dummy/app/models/ability.rb
enju_question-0.0.13 spec/dummy/app/models/ability.rb
enju_question-0.0.12 spec/dummy/app/models/ability.rb
enju_question-0.0.11 spec/dummy/app/models/ability.rb
enju_question-0.0.10 spec/dummy/app/models/ability.rb
enju_question-0.0.9 spec/dummy/app/models/ability.rb
enju_question-0.0.8 spec/dummy/app/models/ability.rb
enju_question-0.0.7 spec/dummy/app/models/ability.rb