Middleware параметры?

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

создал метод 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
    });
});


И в таком виде меня пускает на любой из роутов независимо от роли, как быть и куда смотреть? Спасибо!
  • Вопрос задан
  • 479 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы