Создал middleware с названием DebugForAdmins
Вот его код:
public function handle(Request $request, Closure $next, $guard = null)
{
$auth = Auth::guard($guard);
if ($auth->user()->isAdmin()) {
\Debugbar::enable();
}
return $next($request);
}
Теперь по сути мне надо подключить его в Kernel.php:
\App\Http\Middleware\DebugForAdmins::class,
Есть два варианта куда я могу добавить эту строку:
1. В $middlewareGroups в 'web' - но тогда код просто не работает. Т.е. успешно определяется админ ли юзер, но дэбагбар попросту не включается.
2. В $middleware - тогда я могу просто в своем DebugForAdmins вызвать \Debugbar::enable() без никаких проверок и все заработает. Но для всех пользователей. Но если я добавлю проверки на админа, код перестанет работать, т.к. сессия подключается позже и на данном этапе я еще не могу проверить, админ ли юзер.
Т.е. вот, Старт сессии происходит только в $middlewareGroups в 'web', так-что и мой миделвейр DebugForAdmins нужно подключать ниже него. Но в этом случае, как я и сказал выше \Debugbar::enable() попросту не работает.
\Illuminate\Session\Middleware\StartSession::class,
Итог: В одном случае я могу включить DebugBar, но не могу проверить юзера на админа. В втором случае я могу проверить юзера на админа, но попросту не смогу включить DebugBar.