Implements Spec 090 (Action Surface Contract Compliance & RBAC Hardening). Highlights: - Adds/updates action surface declarations and shrinks baseline exemptions. - Standardizes Filament action grouping/order and empty-state CTAs. - Enforces RBAC UX semantics (non-member -> 404, member w/o capability -> disabled + tooltip, server-side 403). - Adds audit logging for successful side-effect actions. - Fixes Provider Connections list context so header create + row actions resolve tenant correctly. Tests (focused): - vendor/bin/sail artisan test --compact tests/Feature/090/ - vendor/bin/sail artisan test --compact tests/Feature/Guards/ActionSurfaceContractTest.php - vendor/bin/sail bin pint --dirty Livewire/Filament: - Filament v5 + Livewire v4 compliant. - No panel provider registration changes (Laravel 11+ registration remains in bootstrap/providers.php). Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #108
29 lines
1.0 KiB
PHP
29 lines
1.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Filament\Resources\BackupScheduleResource;
|
|
use App\Filament\Resources\FindingResource;
|
|
use App\Filament\Resources\ProviderConnectionResource;
|
|
use App\Filament\Resources\TenantResource;
|
|
use App\Filament\Resources\Workspaces\WorkspaceResource;
|
|
use App\Support\Ui\ActionSurface\ActionSurfaceExemptions;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Tests\TestCase;
|
|
|
|
final class ActionSurfaceSmokeTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
public function test_spec090_removes_in_scope_resources_from_baseline_action_surface_exemptions(): void
|
|
{
|
|
$exemptions = ActionSurfaceExemptions::baseline();
|
|
|
|
$this->assertFalse($exemptions->hasClass(ProviderConnectionResource::class));
|
|
$this->assertFalse($exemptions->hasClass(BackupScheduleResource::class));
|
|
$this->assertFalse($exemptions->hasClass(FindingResource::class));
|
|
$this->assertFalse($exemptions->hasClass(TenantResource::class));
|
|
$this->assertFalse($exemptions->hasClass(WorkspaceResource::class));
|
|
}
|
|
}
|