/** * 检测用户是否对URI有访问权限的 * * @param unknown_type $userid * @return boolean */ public static function check($userid, $controller, $action) { // 非普通用户不查检权限 if (QP_Session_Session::get('login_priv') != 1) { return true; } // 得到配置 $privcfg = QP_Sys::config('privconfig'); // 如果不使用权限则永远返回 true if (!$privcfg['enable']) { return true; } // 判断是否在全局访问的资源中 $allRes = strtolower($controller . '_*'); $currentRes = strtolower($controller . '_' . $action); if (in_array($currentRes, $privcfg['allow']) || in_array($allRes, $privcfg['allow'])) { return true; } // 得到用户所在的组的所有权限 $userModel = new Model_User(); $userInfo = $userModel->userinfo($userid); $privModel = new Model_Priv(); $resourceArr = $privModel->getResource($userInfo['groupid']); // 判断是否在权限组中 return in_array($currentRes, $resourceArr) || in_array($allRes, $resourceArr); }
/** * 添加用户组 * * @param unknown_type $sets */ public function adduserGroup($sets) { // 如果没有设置创建者则自己为当前用户 if (!isset($sets['createuid'])) { $sets['createuid'] = $this->userid; } // 判断是否已存在 if ($this->db->count($this->groupTable, array('groupname' => $sets['groupname'], 'createuid' => $sets['createuid']))) { return false; } if (!isset($sets['dateline'])) { $sets['dateline'] = time(); } $this->db->insert($this->groupTable, $sets); $groupid = $this->db->lastInsertId(); // 为组添加默认权限 $priv = new Model_Priv(); $priv->addDefaultPriv($groupid); return $groupid; }