diff --git a/app/Http/Middleware/ForceFilamentUiMiddleware.php b/app/Http/Middleware/ForceFilamentUiMiddleware.php new file mode 100644 index 0000000..c2031c2 --- /dev/null +++ b/app/Http/Middleware/ForceFilamentUiMiddleware.php @@ -0,0 +1,32 @@ +is('admin') || $request->is('admin/*'); + $isFilamentPath = $request->is('admin-filament') || $request->is('admin-filament/*'); + + if (! $isLegacyAdminPath || $isFilamentPath) { + return $next($request); + } + + // Redirect only navigational requests. Non-GET calls are left as-is. + if (! $request->isMethod('GET') && ! $request->isMethod('HEAD')) { + return $next($request); + } + + return redirect('/admin-filament'); + } +} diff --git a/bootstrap/app.php b/bootstrap/app.php index 5609422..a2fe8fd 100755 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -59,6 +59,8 @@ GoogleSyncFornitoriRubricaCommand::class, ]) ->withMiddleware(function (Middleware $middleware) { + $middleware->append(\App\Http\Middleware\ForceFilamentUiMiddleware::class); + // Registra gli alias dei middleware di Spatie Permission (NAMESPACE CORRETTO) $middleware->alias([ 'role' => \Spatie\Permission\Middleware\RoleMiddleware::class, diff --git a/docs/ai/restart/FILAMENT-ONLY-CUTOVER-CHECKLIST.md b/docs/ai/restart/FILAMENT-ONLY-CUTOVER-CHECKLIST.md new file mode 100644 index 0000000..4ec2320 --- /dev/null +++ b/docs/ai/restart/FILAMENT-ONLY-CUTOVER-CHECKLIST.md @@ -0,0 +1,57 @@ +# Filament-Only Cutover Checklist + +Data aggiornamento: 11-03-2026 + +## Obiettivo + +Usare Day-0 in modalita solo Filament, mettendo la UI legacy in archivio operativo senza perdere funzionalita. + +## Impostazione + +1. In `.env` del nodo Day-0/staging: + +```env +NETGESCON_FORCE_FILAMENT=true +``` + +2. Pulizia cache config/route: + +```bash +php artisan optimize:clear +php artisan config:clear +php artisan route:clear +``` + +## Comportamento atteso + +Con flag attivo: + +- richieste `GET /admin/*` vengono redirette a `/admin-filament` +- pannello Filament resta operativo +- chiamate non GET su `/admin/*` non vengono forzate, per evitare rotture di endpoint tecnici + +Middleware coinvolto: + +- `app/Http/Middleware/ForceFilamentUiMiddleware.php` + +## Verifica rapida + +```bash +curl -I -sS https://staging.netgescon.it/admin | head -n 1 +curl -I -sS https://staging.netgescon.it/admin/stabili | head -n 1 +curl -I -sS https://staging.netgescon.it/admin-filament | head -n 1 +``` + +## Scope funzionale da verificare in Filament + +1. Ticket mobile e allegati +2. Rubrica/nominativi e anagrafica unica +3. Calendario e sync Google +4. Fornitori e moduli import +5. Pagine supporto/QA e collegamenti dashboard + +## Strategia anti-perdita + +1. Legacy materiale resta nel vault locale `_legacy-vault/`. +2. Funzioni da migrare al 100% in Filament vanno tracciate con check list "Legacy -> Filament". +3. Solo quando una funzione e verificata in Filament si dismette il relativo percorso legacy.