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