File: //home/posscale/www/printmanager/app/Http/Middleware/AdminAuth.php
<?php
namespace App\Http\Middleware;
use Closure;
use Filament\Facades\Filament;
use Filament\Models\Contracts\FilamentUser;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class AdminAuth extends Middleware
{
/**
* @param array<string> $guards
*/
protected function authenticate($request, array $guards): void
{
$guard = Filament::auth();
if (! $guard->check()) {
$this->unauthenticated($request, $guards);
return;
}
$this->auth->shouldUse(Filament::getAuthGuard());
/** @var Model $user */
$user = $guard->user();
$panel = Filament::getCurrentPanel();
abort_if(
$user instanceof FilamentUser ?
(! $user->canAccessPanel($panel)) :
(config('app.env') !== 'local'),
403,
);
}
protected function redirectTo($request): ?string
{
return Filament::getLoginUrl();
}
}