TenantAtlas/apps/platform/app/Support/Auth/PlatformCapabilities.php
ahmido 210508db9d feat: implement workspace and tenant closure lifecycle (#337)
## Summary
- add explicit workspace closure and tenant removal lifecycle truth with a bounded `WorkspaceLifecycleService`
- surface closure and removal posture across admin/system pages, chooser recovery, and canonical historical viewers
- block new review-pack and operation starts for closed workspaces or removed tenants while preserving memberships, audit, and history
- add focused Pest coverage plus the Spec 292 artifacts for the implemented slice

## Testing
- `export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/System/Directory/ViewWorkspaceClosureTest.php tests/Feature/System/Ops/ClosedWorkspaceHistoricalAccessTest.php tests/Feature/Filament/Resources/Workspaces/WorkspaceClosureStatusTest.php tests/Feature/Filament/Resources/TenantResource/TenantWorkspaceRemovalTest.php tests/Feature/Filament/Pages/WorkspaceContextClosureRecoveryTest.php`
- `export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent`
- manual integrated-browser smoke for admin tenant remove/restore plus chooser recovery and system workspace close/reopen

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #337
2026-05-07 13:12:17 +00:00

49 lines
1.3 KiB
PHP

<?php
namespace App\Support\Auth;
/**
* Platform Capability Registry
*
* These capabilities are used for platform operators authenticated via the
* `platform` guard (System panel).
*/
class PlatformCapabilities
{
public const ACCESS_SYSTEM_PANEL = 'platform.access_system_panel';
public const USE_BREAK_GLASS = 'platform.use_break_glass';
public const CONSOLE_VIEW = 'platform.console.view';
public const DIRECTORY_VIEW = 'platform.directory.view';
public const DIRECTORY_MANAGE = 'platform.directory.manage';
public const COMMERCIAL_LIFECYCLE_MANAGE = 'platform.commercial_lifecycle.manage';
public const SUPPORT_ACCESS_MANAGE = 'platform.support_access.manage';
public const OPERATIONS_VIEW = 'platform.operations.view';
public const OPERATIONS_MANAGE = 'platform.operations.manage';
public const OPS_VIEW = 'platform.ops.view';
public const RUNBOOKS_VIEW = 'platform.runbooks.view';
public const RUNBOOKS_RUN = 'platform.runbooks.run';
public const OPS_CONTROLS_MANAGE = 'platform.ops.controls.manage';
/**
* @return array<string>
*/
public static function all(): array
{
$reflection = new \ReflectionClass(self::class);
return array_values($reflection->getConstants());
}
}