예제 #1
0
 /**
  * Handle an incoming request.
  *
  * @param \Illuminate\Http\Request $request
  * @param \Closure                 $next
  * @param string|null              $guard
  *
  * @return mixed
  */
 public function handle($request, Closure $next, $guard = 'admin')
 {
     config(['auth.defaults.guard' => 'admin']);
     if (Auth::guard($guard)->user()->is_super_admin == 1) {
         return $next($request);
     }
     $permissionName = $request->route()->getName();
     $permission = PermissionModel::where('name', '=', $permissionName)->first();
     if ($permission != NULL && Auth::guard($guard)->user()->cannot('hasPermission', [AdminUser::class, $permissionName])) {
         throw new \Exception('User Don\'t have permissions', 401);
     }
     return $next($request);
 }