Доброй ночи, не пойму почему то, что написано на сайте с документацией не заводится у меня...
Использую стандартную ларавель аутентификацию, но помимо всего есть роуты которые должны быть доступны только пользователям с конкретными ролями. Исходя из документации, написал следующее
создал метод hasRole в моделе User
public function hasRole()
{
return $this->role;
}
Создал посредника и дал ему имя в Karnel.php
посредник
public function handle($request, Closure $next, $role)
{
if (!Auth::user()->hasRole($role))
{
return redirect(abort(403));
}
return $next($request);
}
Karnel.php
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'role' => \App\Http\Middleware\role::class,
];
и собственно файл и роутами
$router->group(['prefix'=>'/dashboard', 'middleware'=>'auth'], function($router)
{
$router->group(['middleware'=>"role:administrator"], function(){
Route::get('/admin', function(){
print "Administrators part here";
});
//some admin routes
});
$router->group(['middleware'=>"role:client"], function(){
Route::get('/client', function(){
print "Client part here";
});
//some client routes
});
});
И в таком виде меня пускает на любой из роутов независимо от роли, как быть и куда смотреть? Спасибо!