У меня два типа пользователей: эксплуатация и обслуживание. Все маршруты, к которым относится тип пользователя «Операции», могут быть доступны для типа пользователя «Обслуживание», но не все маршруты, которые имеет тип «Операции», не могут быть доступны для типа «Операции».
Вот мой существующий код.
Route::group(['middleware'=>'maintenance'], function(){
//routes here
Route::group(['middleware'=>'operations'], function(){
//routes here
});
});
kernel.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,
'revalidate' => \App\Http\Middleware\RevalidateBackHistory::class,
'dev' => \App\Http\Middleware\isDev::class,
'operations' => \App\Http\Middleware\operations::class,
'maintenance' => \App\Http\Middleware\maintenance::class,
];
промежуточное ПО / operations.php
public function handle($request, Closure $next)
{
$a = UserAccess::where(['employee_id'=>\Auth::user()->id, 'user_type_id'=>1])->first();
if($a){
return $next($request);
}
return redirect('/');
}
Но это не работает. Служба технического обслуживания может получить доступ ко всем своим маршрутам, но не имеет доступа к операциям, а служба эксплуатации вообще не имеет доступа ни к одному маршруту.
ПРИМЕЧАНИЕ. Обе группы входят в группу промежуточного программного обеспечения для проверки подлинности.
app/Http/Kernel.php
код, а также вашoperations
код промежуточного программного обеспечения - person Nikola Gavric   schedule 12.02.2018