Sha256: 147171317d9a242d01fabb521e0c36376476f499b0b94c5586f25cab22590df4

Contents?: true

Size: 638 Bytes

Versions: 4

Compression:

Stored size: 638 Bytes

Contents

module Dorsale::Flyboy::TaskPolicyHelper
  POLICY_METHODS = [
    :list?,
    :export?,
    :create?,
    :read?,
    :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.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

4 entries across 4 versions & 1 rubygems

Version Path
dorsale-3.5.2 app/policies/dorsale/flyboy/task_policy_helper.rb
dorsale-3.5.1 app/policies/dorsale/flyboy/task_policy_helper.rb
dorsale-3.5.0 app/policies/dorsale/flyboy/task_policy_helper.rb
dorsale-3.4.0 app/policies/dorsale/flyboy/task_policy_helper.rb