РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗ppflSpPnMw 146 of 250 menu
◀ ▶

Промежуточное ПО в Filament

Давайте добавим промежуточное ПО. Перед отдачей страницы /admin запрос проходит цепочку классов Laravel. Filament позволяет дописать свои звенья к стандартным.

Общий стек задают вызовом middleware с флагом isPersistent, чтобы классы жили между запросами как в обычном приложении. Для защищённых страниц есть отдельный список authMiddleware.

Откроем AdminPanelProvider.php и подключим проверку EnsureStaff.php в оба массива:

<?php namespace App\Providers\Filament; use App\Http\Middleware\EnsureStaff; use Filament\Panel; use Filament\PanelProvider; use Illuminate\Auth\Middleware\Authenticate; use Illuminate\Cookie\Middleware\EncryptCookies; class AdminPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel ->default() ->id('admin') ->path('admin') ->login() ->middleware([ EncryptCookies::class, EnsureStaff::class, ], isPersistent: true) ->authMiddleware([ Authenticate::class, EnsureStaff::class, ]); } }

Сам класс проверки пока просто пропускает запрос дальше. Его можно заменить логикой роли или отдела:

<?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class EnsureStaff { public function handle(Request $request, Closure $next) { return $next($request); } }

Поставьте на панель свою проверку перед открытием страниц.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить