Laravel Route Middleware auth: администратор не работает для всех маршрутов - PullRequest
0 голосов
/ 18 мая 2019

Я хотел бы предварительно проверить две разные группы маршрутов с помощью auth: admin middleware. Это отлично работает для первой группы маршрутов внутри, но не для второй, которая находится в другом пространстве имен.

Файл моих маршрутов выглядит так:

Route::group(['middleware' => ['auth:admin']], function(){

    Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'as' => 'admin.'], function(){
        Route::resource('dashboard', 'DashboardController')->only(['index', 'create', 'store']);
    });

    Route::group(['prefix' => 'team/{team_id}', 'namespace' => 'Team', 'as' => 'team.'], function(){
        Route::resource('dashboard', 'DashboardController')->only(['index', 'create', 'store']);
    });

});

Если я не вошел в систему и не попытался зайти в admin / dashboard, меня перенаправили в login / admin. Но если я пытаюсь перейти к команде / 1 / dashboard, то появляется сообщение об ошибке «Попытка получить свойство« заголовки »необъекта». Как заставить промежуточное ПО auth: admin работать и с моими командными маршрутами?

1 Ответ

0 голосов
/ 18 мая 2019

создать промежуточное ПО

class IsAdmin
{
    public function handle($request, Closure $next)
    {
        if (Auth::user()->permission == 'admin') {
            return $next($request);
        }

        return redirect()->route('some.route'); // If user is not an admin.
    }
}

Зарегистрироваться в kernel.php

protected $routeMiddleware = [ .... 'is.admin' => \App\Http\Middleware\IsAdmin::class, ];

Итак, ваши маршруты:

Route::group(['middleware' => 'is.admin'], function () {
Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'as' => 'admin.'], function(){
        Route::resource('dashboard', 'DashboardController')->only(['index', 'create', 'store']);
    });

    Route::group(['prefix' => 'team/{team_id}', 'namespace' => 'Team', 'as' => 'team.'], function(){
        Route::resource('dashboard', 'DashboardController')->only(['index', 'create', 'store']);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...