app/models/flyboy/ability.rb in flyboy-0.0.1 vs app/models/flyboy/ability.rb in flyboy-0.0.2

- old
+ new

@@ -1,21 +1,29 @@ module Flyboy class Ability include ::CanCan::Ability def initialize(user = nil) - can :manage, :all + # Allowed actions (all by default) + can [:create, :read, :update, :delete, :open, :close], Flyboy::Goal + can [:create, :read, :update, :delete, :complete, :snooze], Flyboy::Task + # Restricted actions + + cannot [:update, :delete], Flyboy::Goal do |goal| + goal.closed? + end + cannot :close, Flyboy::Goal do |goal| not goal.may_close? end cannot :open, Flyboy::Goal do |goal| not goal.may_open? end - cannot :create, Flyboy::Task do |task| - not task.goal.open? + cannot [:create, :update, :delete], Flyboy::Task do |task| + task.goal.closed? end cannot :complete, Flyboy::Task do |task| task.done? end