feat: workspace context enforcement (specs 070–072) #85

Merged
ahmido merged 5 commits from feat/072-managed-tenants-workspace-enforcement into dev 2026-02-02 10:07:42 +00:00
Owner

Implements specs 070–072 (workspace foundation, workspace-scoped tenant selection, managed-tenants workspace enforcement).

Highlights

  • Adds Workspace + WorkspaceMembership models/migrations + middleware to persist/enforce current workspace context.
  • Scopes tenant selection to the current workspace.
  • Makes legacy /admin/managed-tenants* routes redirect into workspace-scoped URLs.
  • Enforces tenant routes under /admin/t/{tenant} to 404 when workspace context is missing or mismatched.
  • Fixes Filament page Blade wrappers so header actions render on choose-workspace / choose-tenant / no-access pages.

Verification

  • Pint: vendor/bin/sail bin pint --dirty
  • Tests: vendor/bin/sail artisan test --compact tests/Feature/Guards/NoAdHocFilamentAuthPatternsTest.php tests/Feature/Workspaces tests/Feature/Filament/ChooseTenantIsWorkspaceScopedTest.php tests/Feature/Filament/ChooseTenantRequiresWorkspaceTest.php tests/Feature/Filament/TenantSwitcherUrlResolvesTenantTest.php tests/Feature/ManagedTenants tests/Feature/AdminNewRedirectTest.php

Notes

  • Filament v5 / Livewire v4 compatible.
  • Panel provider registration stays in bootstrap/providers.php (Laravel 11+ rule).
  • No new heavy frontend assets added.
Implements specs 070–072 (workspace foundation, workspace-scoped tenant selection, managed-tenants workspace enforcement). Highlights - Adds Workspace + WorkspaceMembership models/migrations + middleware to persist/enforce current workspace context. - Scopes tenant selection to the current workspace. - Makes legacy `/admin/managed-tenants*` routes redirect into workspace-scoped URLs. - Enforces tenant routes under `/admin/t/{tenant}` to 404 when workspace context is missing or mismatched. - Fixes Filament page Blade wrappers so header actions render on choose-workspace / choose-tenant / no-access pages. Verification - Pint: `vendor/bin/sail bin pint --dirty` - Tests: `vendor/bin/sail artisan test --compact tests/Feature/Guards/NoAdHocFilamentAuthPatternsTest.php tests/Feature/Workspaces tests/Feature/Filament/ChooseTenantIsWorkspaceScopedTest.php tests/Feature/Filament/ChooseTenantRequiresWorkspaceTest.php tests/Feature/Filament/TenantSwitcherUrlResolvesTenantTest.php tests/Feature/ManagedTenants tests/Feature/AdminNewRedirectTest.php` Notes - Filament v5 / Livewire v4 compatible. - Panel provider registration stays in `bootstrap/providers.php` (Laravel 11+ rule). - No new heavy frontend assets added.
ahmido added 5 commits 2026-02-02 10:03:38 +00:00
ahmido merged commit a989ef1a23 into dev 2026-02-02 10:07:42 +00:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: ahmido/TenantAtlas#85
No description provided.