# app/policies/consolidacao_policy.rb class ConsolidacaoPolicy < ApplicationPolicy def index? = user.pode_consolidar? def arquivadas? = user.pode_consolidar? def show? = user.pode_consolidar? def create? = user.pode_consolidar? def update? = user.pode_consolidar? && !record_finalizada_para_operador? def destroy? = user.admin? || user.gerente? # Registrar/estornar pagamento: mesma régua de arquivar/excluir. def registrar_pagamento? = user.admin? || user.gerente? def cancelar_pagamento? = registrar_pagamento? private # Operador não mexe em consolidação finalizada def record_finalizada_para_operador? record.respond_to?(:finalizada?) && record.finalizada? && user.operador? end end