Module: Dorsale::Flyboy::AbilityHelper
- Defined in:
- app/models/dorsale/flyboy/ability_helper.rb
Instance Method Summary collapse
Instance Method Details
#define_dorsale_flyboy_abilities ⇒ Object
4 5 6 7 8 9 10 |
# File 'app/models/dorsale/flyboy/ability_helper.rb', line 4 def define_dorsale_flyboy_abilities # Allowed actions (all by default) can [:list, :create, :read, :update, :delete, :open, :close], ::Dorsale::Flyboy::Folder can [:list, :create, :read, :update, :delete, :complete, :snooze], ::Dorsale::Flyboy::Task define_dorsale_flyboy_common_restrictions end |
#define_dorsale_flyboy_common_restrictions ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/models/dorsale/flyboy/ability_helper.rb', line 12 def define_dorsale_flyboy_common_restrictions cannot [:update, :delete], ::Dorsale::Flyboy::Folder do |folder| folder.closed? end cannot :close, ::Dorsale::Flyboy::Folder do |folder| not folder.may_close? end cannot :open, ::Dorsale::Flyboy::Folder do |folder| not folder.may_open? end cannot :create, ::Dorsale::Flyboy::Task do |task| task.taskable.present? && cannot?(:read, task.taskable) end cannot [:create, :update, :delete], ::Dorsale::Flyboy::Task do |task| task.taskable.is_a?(::Dorsale::Flyboy::Folder) && task.taskable.closed? end cannot :complete, ::Dorsale::Flyboy::Task do |task| task.done? end cannot :snooze, ::Dorsale::Flyboy::Task do |task| task.done? || task.reminder >= Date.today end end |