/** * */ protected function _initialize() { if (!RBAC::AccessDecision('Weixin')) { // 登录检查 RBAC::checkLogin(); // 提示错误信息 无权限 $this->error(L('_VALID_ACCESS_')); // TODO 如何防止循环无权限 } }
/** * */ protected function _initialize() { if (!RBAC::AccessDecision('Admin')) { // 登录检查 RBAC::checkLogin(); // 提示错误信息 无权限 $httpReferer = $_SERVER['HTTP_REFERER']; $parsedHttpReferer = parse_url($httpReferer); $httpQuery = $parsedHttpReferer['query']; parse_str($httpQuery, $parsedHttpQuery); if ($parsedHttpQuery['a'] == 'login' && $parsedHttpQuery['c'] == 'login') { $UserEvent = new \Common\Event\UserEvent(); $logoutRes = $UserEvent->logout(); $this->error(L('_VALID_ACCESS_')); } else { $this->error(L('_VALID_ACCESS_')); } } }
public function run(&$rbac_status) { //载入RBAC权限控制类 import('RBAC'); //角色表名称 C("RBAC_ROLE_TABLE", C("DB_PREFIX") . "role"); //用户表名称 C("RBAC_USER_TABLE", C("DB_PREFIX") . "role_user"); //节点表名称 C("RBAC_NODE_TABLE", C("DB_PREFIX") . "node"); //后台用户模型 C("USER_AUTH_MODEL", "User"); //认证网关 C("USER_AUTH_GATEWAY", U("Admin/Public/login")); if (!RBAC::AccessDecision(GROUP_NAME)) { //检查认证识别号 if (!RBAC::checkLogin()) { $rbac_status['status'] = false; $rbac_status['error'] = "请登录后操作!"; $rbac_status['url'] = C('USER_AUTH_GATEWAY'); //记录当前页面地址到cookie中,用于登陆成功后跳转到该地址。 cookie("forward", get_url()); return; } // 没有权限 抛出错误 if (C('RBAC_ERROR_PAGE')) { // 定义权限错误页面 redirect(C('RBAC_ERROR_PAGE')); } else { $rbac_status['status'] = false; $rbac_status['error'] = "您没有操作此项的权限!"; } } else { $rbac_status['status'] = true; } }