Some checks failed
Main Confidence / confidence (push) Failing after 1m23s
Removes the Findings lifecycle backfill from the Operational Controls UI and OperationalControlCatalog. This patch is a safe, controls-only change; runbooks, jobs and other runtime artifacts are NOT removed yet. Follow-up work will delete the runbook service/scope, jobs, commands, and update tests. Files changed: - apps/platform/app/Filament/System/Pages/Ops/Controls.php - apps/platform/app/Support/OperationalControls/OperationalControlCatalog.php - apps/platform/tests/Feature/System/OpsControls/OperationalControlManagementTest.php - apps/platform/tests/Unit/Support/OperationalControls/OperationalControlCatalogTest.php - apps/platform/tests/Unit/Support/OperationalControls/OperationalControlScopeResolutionTest.php Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #280
31 lines
843 B
PHP
31 lines
843 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Support\OperationalControls;
|
|
|
|
use RuntimeException;
|
|
|
|
final class OperationalControlBlockedException extends RuntimeException
|
|
{
|
|
private function __construct(
|
|
public readonly OperationalControlDecision $decision,
|
|
public readonly string $actionLabel,
|
|
) {
|
|
$message = trim($decision->reasonText ?? '');
|
|
|
|
parent::__construct($message !== ''
|
|
? sprintf('%s is currently paused. %s', $actionLabel, $message)
|
|
: sprintf('%s is currently paused.', $actionLabel));
|
|
}
|
|
|
|
public static function forDecision(OperationalControlDecision $decision, string $actionLabel): self
|
|
{
|
|
return new self($decision, $actionLabel);
|
|
}
|
|
|
|
public function title(): string
|
|
{
|
|
return sprintf('%s paused', $this->actionLabel);
|
|
}
|
|
} |