/** * 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 = null) { if (Auth::guard($guard)->guest()) { if ($request->ajax()) { return response('Unauthorized.', 401); } else { return redirect()->guest('login'); } } if (auth()->user()->confirmed == 0) { Auth::logout(); return redirect()->guest('login'); } $menus_id = AdminMenuRole::whereIn('role_id', function ($query) { return $query->from(AdminAssignedRole::query()->getModel()->getTable())->select("role_id")->where('user_id', auth()->user()->id); })->lists('menu_id'); $_menus = AdminMenu::with(array('menus' => function ($query) use($menus_id) { $query->whereIn('id', $menus_id); $query->where('parent_id', '>', 0); $query->orderBy('order_by', 'asc'); }))->where('parent_id', 0)->orderBy('order_by', 'asc')->get(); view()->share('_menus', $_menus); $menus = []; $_menus = $_menus->pluck("menus")->toArray(); foreach ($_menus as $v) { $menus = array_merge($menus, $v); } $routes = array_pluck($menus, 'route'); $routes = str_replace(["/"], ["\\/"], $routes); array_walk($routes, function (&$v, $k) { $v = "^{$v}*"; }); $all_routes = \Cache::get("all_routes", function () { $all_routes = AdminMenu::where('parent_id', '>', 0)->lists("route")->toArray(); $all_routes = str_replace(["/"], ["\\/"], $all_routes); array_walk($all_routes, function (&$v, $k) { $v = "^{$v}*"; }); \Cache::forever("all_routes", $all_routes); return $all_routes; }); $currentRoute = Route::currentRouteName(); if (!preg_match('/' . implode("|", $routes) . '/', $currentRoute) && preg_match('/' . implode("|", $all_routes) . '/', $currentRoute)) { return redirect()->to("/"); } return $next($request); }
public function getDelete() { $user = AdminUser::find(request('id')); if ($user->id == auth()->user()->id || $user->id == 1) { return response('不能删除你当前的用户', 422); } AdminAssignedRole::where('user_id', $user->id)->delete(); $id = $user->id; $user->delete(); $user = AdminUser::find($id); if (!empty($user)) { return response('删除失败', 422); } else { return response('删除成功'); } }