redirect('Login/index'); try { $adminInfo = InstitutionAdmin::activeAdminInfoOrFail(); $merchantInfo = InstitutionAdmin::activeMerchantInfoOrFail(); } catch (\Exception $e) { return $this->failed(InstitutionAdmin::getErrorInfo($e->getMessage()), Url::build('Login/index')); } $this->adminInfo = $adminInfo; $this->adminId = $adminInfo['id']; $this->merchantInfo = $merchantInfo; $this->merchantId = $merchantInfo['id']; $this->entry_type = $adminInfo['entry_type']; $this->lecturerId = $merchantInfo['lecturer_id']; $this->isAudit = Institution::where('id', $merchantInfo['id'])->value('is_audit'); $this->getActiveAdminInfo(); $this->auth = InstitutionMenus::rulesByAuth($this->adminInfo['rules']); $this->checkAuthInstitution(); $agent = Lecturer::where(array('agent'=>$merchantInfo['id'],'is_del' => 0))->select()->toArray(); $agent_exp = implode(',',array_column($agent,'mer_id')); $this->agent = $agent_exp ? $agent_exp : $merchantInfo['id']; $this->o_agent = $agent_exp ? $agent_exp : -1; $this->assign('_admin', $this->adminInfo); if ($merchantInfo['is_del'] == 1 || $merchantInfo['status'] == 0) { $this->failed('讲师删除或者已被禁止登陆', Url::build('Login/index')); } } protected function checkAuthInstitution($action = null, $controller = null, $module = null, array $route = []) { static $allAuth = null; if ($allAuth === null) $allAuth = InstitutionMenus::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 = InstitutionMenus::getAuthName($action, $controller, $module, $route); $baseNowAuthName = InstitutionMenus::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 InstitutionAdmin */ protected function getActiveAdminInfo() { $adminId = $this->adminId; $adminInfo = InstitutionAdmin::getValidAdminInfoOrFail($adminId); if (!$adminInfo) $this->failed(InstitutionAdmin::getErrorInfo('请登陆!')); $this->adminInfo = $adminInfo; InstitutionAdmin::setLoginInfo($adminInfo->toArray()); return $adminInfo; } }