redirect('Login/index'); try { $adminInfo = SystemAdmin::activeAdminInfoOrFail(); } catch (\Exception $e) { return $this->failed(SystemAdmin::getErrorInfo($e->getMessage()), Url::build('Login/index')); } $this->adminInfo = $adminInfo; $this->adminId = $adminInfo['id']; $this->getActiveAdminInfo(); $this->auth = SystemAdmin::activeAdminAuthOrFail(); $this->adminInfo['level'] === 0 || $this->checkAuth(); // Special::updateSpecialSource();//下个版本删除 $this->assign('_admin', $this->adminInfo); HookService::listen('admin_visit', $this->adminInfo, 'system', false, SystemBehavior::class); } protected function checkAuth($action = null, $controller = null, $module = null, array $route = []) { static $allAuth = null; if ($allAuth === null) $allAuth = SystemRole::getAllAuth(); if ($module === null) $module = $this->request->module(); if ($controller === null) $controller = $this->request->controller(); if ($action === null) $action = $this->request->action(); if (!count($route)) $route = $this->request->route(); if (in_array(strtolower($controller), $this->skipLogController, true)) return true; $nowAuthName = SystemMenus::getAuthName($action, $controller, $module, $route); $baseNowAuthName = SystemMenus::getAuthName($action, $controller, $module, []); if ((in_array($nowAuthName, $allAuth) && !in_array($nowAuthName, $this->auth)) || (in_array($baseNowAuthName, $allAuth) && !in_array($baseNowAuthName, $this->auth))) exit($this->authFail('没有权限访问!')); return true; } /** * 获得当前用户最新信息 * @return SystemAdmin */ protected function getActiveAdminInfo() { $adminId = $this->adminId; $adminInfo = SystemAdmin::getValidAdminInfoOrFail($adminId); if (!$adminInfo) $this->failed(SystemAdmin::getErrorInfo('请登陆!')); $this->adminInfo = $adminInfo; SystemAdmin::setLoginInfo($adminInfo->toArray()); return $adminInfo; } }