public function get($f3) { global $smarty; $privilegeKey = $f3->get('GET[privilege]'); $privilegeItem = array(); if (!empty($privilegeKey)) { if (UserAdminService::privilegeAll == $privilegeKey) { $privilegeItem['meta_name'] = '最高权限'; $privilegeItem['meta_desc'] = '系统的最高权限'; } else { $metaPrivilegeService = new MetaPrivilegeService(); $privilege = $metaPrivilegeService->loadPrivilegeItem($privilegeKey); $privilegeItem = $privilege->toArray(); } } $smarty->assign('privilegeItem', $privilegeItem); $smarty->assign('refer_url', RouteHelper::getRefer()); $smarty->display('error_privilege.tpl'); }
/** * 要求某个权限才能执行 * * @param string $needPrivilege * @param bool $isAjax 是否是 ajax 请求 * */ protected function requirePrivilege($needPrivilege, $isAjax = false) { if (!$this->hasPrivilege($needPrivilege)) { goto out_fail; } return; // 成功从这里返回 out_fail: // 失败,reroute 到错误页面 if ($isAjax) { $needPrivilegeName = $needPrivilege; $metaPrivilegeService = new MetaPrivilegeService(); $privilege = $metaPrivilegeService->loadPrivilegeItem($needPrivilege, 600); //缓存 10 分钟 if (!$privilege->isEmpty()) { $needPrivilegeName = $privilege['meta_name'] ?: $needPrivilegeName; } Ajax::header(); echo Ajax::buildResult(-1, '没有权限:' . $needPrivilegeName, null); die; } RouteHelper::reRoute($this, RouteHelper::makeUrl('/Error/Privilege', array('privilege' => $needPrivilege), true)); }