Sha256: 7c9e6283c1e0e47eff93b7420aab453dd47718c1b8eb1f3577225fc22e74f03d

Contents?: true

Size: 661 Bytes

Versions: 2

Compression:

Stored size: 661 Bytes

Contents

module Dorsale::Flyboy::TaskPolicyHelper
  POLICY_METHODS = [
    :list?,
    :export?,
    :create?,
    :read?,
    :comment?,
    :update?,
    :delete?,
    :complete?,
    :snooze?,
  ]

  def create?
    return false if cannot_read_taskable?
    super
  end

  def update?
    super
  end

  def delete?
    super
  end

  def complete?
    return false if task.done?
    super
  end

  def snooze?
    return false unless task.snoozer.snoozable?
    super
  end

  private

  def cannot_read_taskable?
    return false unless task.is_a?(::Dorsale::Flyboy::Task)
    return false unless task.taskable.present?

    ! policy(task.taskable).read?
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dorsale-3.7.1 app/policies/dorsale/flyboy/task_policy_helper.rb
dorsale-3.7.0 app/policies/dorsale/flyboy/task_policy_helper.rb