TenantAtlas/app/Services/System/AllowedTenantUniverse.php
Ahmed Darrazi 39fd8ca1ea feat(spec-119): baseline compare drift cutover
- Enrich drift findings evidence_jsonb for diff UX (summary.kind, refs, fidelity, provenance)

- Add baseline policy version resolver and contract asserts

- Remove legacy drift generator + DriftLanding surfaces

- Add one-time cleanup migration for legacy drift findings

- Scope baseline capture/landing warnings to latest inventory sync

- Canonicalize compliance scheduledActionsForRule drift signal
2026-03-06 15:22:42 +01:00

37 lines
858 B
PHP

<?php
declare(strict_types=1);
namespace App\Services\System;
use App\Models\Tenant;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Validation\ValidationException;
class AllowedTenantUniverse
{
public const PLATFORM_TENANT_EXTERNAL_ID = 'platform';
public function query(): Builder
{
return Tenant::query()
->where('external_id', '!=', self::PLATFORM_TENANT_EXTERNAL_ID);
}
public function isAllowed(Tenant $tenant): bool
{
return (string) $tenant->external_id !== self::PLATFORM_TENANT_EXTERNAL_ID;
}
public function ensureAllowed(Tenant $tenant): void
{
if ($this->isAllowed($tenant)) {
return;
}
throw ValidationException::withMessages([
'tenant_id' => 'This tenant is not eligible for System runbooks.',
]);
}
}