Я использую этот пакет spatie / laravel-Разрешение и я хочу сделать следующее:
super-admin, admin, члены имеют одинаковый логин и после входа в него перенаправитьна разные маршруты.Супер-админ и админ имеют одинаковое перенаправление.Поэтому я поставил этот код.
//app\Http\Controllers\Auth\LoginController.php
protected function authenticated(Request $request, $user)
{
if ( $user->hasAnyRole(['super-admin', 'admin']) ) {// do your margic here
return redirect()->route('admin.dashboard');
}
return redirect('/home');
}
, а затем это мои маршруты //routes/web.php
Auth::routes();
Route::group(['middleware' => ['role:member']], function () {
Route::get('/', 'HomeController@index')->name('home');
});
Route::group(['middleware' => ['role:super-admin|admin'], 'prefix' => 'admin'], function () {
Route::get('/', 'Admin\HomeController@dashboard')->name('admin.dashboard');
});
После входа в систему я хочу сделать, когда super-admin / admin посетите site.com/*
, он должен перенаправить на site.com/admin/
, потому что он не авторизован, потому что он не участник , а также когда member посетите site.com/admin/*
, он перенаправит на site.com/
, потому что он не admin / super-admin , остальные перейдут на страницу входа, когда не аутентифицированы.
Он выглядит следующим образом:
Он должен перенаправить в зависимости от их роли на главной странице, вместо этого отображается ошибка 403.