diff --git a/app/Providers/Filament/TenantPanelProvider.php b/app/Providers/Filament/TenantPanelProvider.php index 8630427..3dea405 100644 --- a/app/Providers/Filament/TenantPanelProvider.php +++ b/app/Providers/Filament/TenantPanelProvider.php @@ -55,8 +55,9 @@ class TenantPanelProvider extends PanelProvider SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, - ResolveTenant::class, - CheckTenantStatus::class, + // ResolveTenant + CheckTenantStatus are now registered globally + // in bootstrap/app.php (web middleware group) so they run on + // Livewire endpoints too. No need to duplicate them here. ]) ->authMiddleware([ Authenticate::class, diff --git a/bootstrap/app.php b/bootstrap/app.php index b4c7ca7..c3f7ee1 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -21,6 +21,14 @@ return Application::configure(basePath: dirname(__DIR__)) | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_AWS_ELB ); + + // ResolveTenant must run on EVERY web request (including Livewire + // /livewire/update endpoints) so tenant context is set before + // any DB query goes through the global TenantScope. + $middleware->web(append: [ + \App\Http\Middleware\ResolveTenant::class, + \App\Http\Middleware\CheckTenantStatus::class, + ]); }) ->withExceptions(function (Exceptions $exceptions): void { //