path() == Admin::config('admin.route.prefix')) { return $next($request); } $excepted = collect(Admin::config('admin.auth.except', [])) ->merge(Admin::config('admin.show_development_tools') ? ['/dev_tools*'] : []) ->map(fn($path) => $this->pathFormatting($path)) ->contains(fn($except) => $request->is($except == '/' ? $except : trim($except, '/'))); if ($excepted) { return $next($request); } $user = Admin::user(); if (!$user) { return $next($request); } if ($user->isAdministrator() || $user->can($name)) { return $next($request); } return Admin::response()->fail(admin_trans('admin.unauthorized')); } private function pathFormatting($path) { $prefix = '/' . trim(Admin::config('admin.route.prefix'), '/'); $prefix = ($prefix === '/') ? '' : $prefix; $path = trim($path, '/'); if (is_null($path) || $path === '') { return $prefix ?: '/'; } return $prefix . '/' . $path; } }