У меня проблемы с промежуточным программным обеспечением Laravel. То, что я хочу сделать sh - зарегистрированный пользователь имеет 4 роли. 1. Главный администратор 2. Администратор 3. Продавец 4. Клиент. Я хочу, чтобы у моего главного администратора, администратора и продавца был доступ к моему CategoryController, и клиент не может получить к нему доступ, но когда я помещаю промежуточное программное обеспечение в конструктор моего контроллера, он только позволяет masteradmin получить доступ к CategoryController и возвращает пользователей admin и продавца. Пожалуйста, посоветуйте мне, как это сделать.
Ядро. php $ routemiddleware:
'checkrole' => \App\Http\Middleware\CheckRole::class,
'admincheck' => \App\Http\Middleware\Admin::class,
'sellercheck' => \App\Http\Middleware\Seller::class,
'customercheck' => \App\Http\Middleware\Customer::class,
'masteradmin' => \App\Http\Middleware\MasterAdmin::class,
http / Middleware / CheckRole
public function handle($request, Closure $next)
{
if(Auth::user()->user_role == 1)
{
return redirect('admin');
}
elseif(Auth::user()->user_role == 2)
{
return redirect('seller');
}
elseif(Auth::user()->user_role == 3)
{
return redirect('customer');
}
return $next($request);
}
http / Middleware / MasterAdmin
public function handle($request, Closure $next)
{
if(Auth::user()->user_role != 0)
{
return back();
}
return $next($request);
}
http / Middleware / Admin
public function handle($request, Closure $next)
{
if(Auth::user()->user_role != 1)
{
return back();
}
return $next($request);
}
http / Middleware / Seller
public function handle($request, Closure $next)
{
if(Auth::user()->user_role != 2)
{
return back();
}
return $next($request);
}
Http / Middleware / Customer
public function handle($request, Closure $next)
{
if(Auth::user()->user_role != 3)
{
return back();
}
return $next($request);
}
КатегорияКонтроллер:
class CategoryController extends Controller
{
public function __construct()
{
$this->middleware('auth');
$this->middleware('verified');
$this->middleware('masteradmin');
$this->middleware('admincheck');
$this->middleware('sellercheck');
// $this->authorizeResource(Category::class, 'category');
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('category.index');
}
HomeController
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
$this->middleware('verified');
$this->middleware('checkrole');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return view('home');
}
Сейчас это не работает. Я хочу дать одному или нескольким пользователям доступ ко всему моему контроллеру, пожалуйста, посоветуйте мне, как этого добиться, заранее спасибо