Итак, вам нужно создать AdminMiddleware
и добавить его в маршруты.
Сначала откройте свою модель User
и добавьте в нее дополнительный метод:
public function isAdmin()
{
return $this->RoleID == 1;
}
Теперь запустите в консоли:
php artisan make:middleware AdminMiddleware
откройте свой AdminMiddleware.php
и измените метод handle
, чтобы он выглядел так:
if (!\Auth::user()->isAdmin()) {
if ($request->ajax()) {
return response('Admin account required.', 401);
} else {
return redirect('/'); // set here any url you need
}
}
return $next($request);
Теперь откройте app/Http/Kernel.php
и добавьте в свойство $routeMiddleware
новую запись:
'isAdmin' => \App\Http\Middleware\AdminMiddleware::class,
Наконец, измените свои маршруты
'middleware' => 'auth',
в
'middleware' => ['auth', 'isAdmin'],
Порядок здесь важен, если вы измените порядок здесь, вы получите неожиданное исключение, если пользователь не вошел в систему.
В зависимости от ваших потребностей вы также можете использовать здесь только промежуточное программное обеспечение isAdmin
на случай, если для этого маршрута вы хотите сделать другое перенаправление, чем в auth
, когда пользователь не зарегистрирован. В этом случае вам нужно объединить методы из auth
и isAdmin
и подогнать под свои нужды.
person
Marcin Nabiałek
schedule
24.12.2015