netgescon-day0/app/Http/Middleware/ForceFilamentUiMiddleware.php

33 lines
945 B
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class ForceFilamentUiMiddleware
{
public function handle(Request $request, Closure $next): Response
{
if (! (bool) config('netgescon.ui.force_filament', false)) {
return $next($request);
}
// Keep Filament panel and non-admin paths untouched.
$isLegacyAdminPath = $request->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');
}
}