permissiondescriptor.inc.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 494 行 · 第 1/2 页
SVN-BASE
494 行
$sGroupIDs = DBUtil::paramArray($aGroupIDs); $sQuery = "SELECT DISTINCT descriptor_id FROM $sTable WHERE group_id IN ( $sGroupIDs )"; $aParams = $aGroupIDs; $aIDs = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'descriptor_id'); $aRet = array(); foreach ($aIDs as $iID) { if ($ids === true) { $aRet[] = $iID; } else { $aRet[] =& KTPermissionDescriptor::get($iID); } } return $aRet; } // }}} // }}} // {{{ ROLES // {{{ _clearRoles function _clearRoles() { unset($GLOBALS['_PDRC'][$this->getId()]); $sTable = KTUtil::getTableName('permission_descriptor_roles'); $sQuery = "DELETE FROM $sTable WHERE descriptor_id = ?"; $aParams = array($this->getID()); $res = DBUtil::runQuery(array($sQuery, $aParams)); return $res; } // }}} // {{{ _addRole function _addRole($iID) { $sTable = KTUtil::getTableName('permission_descriptor_roles'); $sQuery = "INSERT INTO $sTable (descriptor_id, role_id) VALUES (?, ?)"; $aParams = array($this->getID(), $iID); $res = DBUtil::runQuery(array($sQuery, $aParams)); return $res; } // }}} // {{{ hasRoles function hasRoles($aRoles) { if (!is_array($aRoles)) { return false; } $sTable = KTUtil::getTableName('permission_descriptor_roles'); if (count($aRoles) === 0) { return false; } $aRoleIDs = array(); foreach ($aRoles as $oRole) { $aRoleIDs[] = KTUtil::getId($oRole); } $sRoleIDs = DBUtil::paramArray($aRoleIDs); $sQuery = "SELECT COUNT(role_id) AS num FROM $sTable WHERE descriptor_id = ? AND role_id IN ($sRoleIDs)"; $aParams = array($this->getID()); $aParams = kt_array_merge($aParams, $aRoleIDs); $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'num'); if (PEAR::isError($res)) { return $res; } if ((int)$res === 0) { return false; } return true; } // }}} // {{{ getRoles function getRoles() { if (isset($GLOBALS['_PDRC'][$this->getId()])) { return $GLOBALS['_PDRC'][$this->getId()]; } $sTable = KTUtil::getTableName('permission_descriptor_roles'); $sQuery = "SELECT role_id FROM $sTable WHERE descriptor_id = ?"; $aParams = array($this->getID()); $res = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'role_id'); $GLOBALS['_PDRC'][$this->getId()] = $res; return $res; } // }}} // {{{ STATIC: getByRole function &getByRole($oRole) { $sTable = KTUtil::getTableName('permission_descriptor_roles'); $sQuery = "SELECT descriptor_id FROM $sTable WHERE role_id = ?"; $aParams = array($oRole->getID()); $aIDs = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'descriptor_id'); $aRet = array(); foreach ($aIDs as $iID) { $aRet[] =& KTPermissionDescriptor::get($iID); } return $aRet; } // }}} // {{{ STATIC: getByRoles function &getByRoles($aRoles, $aOptions = null) { $sTable = KTUtil::getTableName('permission_descriptor_roles'); if (is_null($aOptions)) { $aOptions = array(); } if (count($aRoles) === 0) { return array(); } $ids = KTUtil::arrayGet($aOptions, 'ids'); $aRoleIDs = array(); foreach ($aRoles as $oRole) { if (is_numeric($oRole)) { $aRoleIDs[] = $oRole; } else { $aRoleIDs[] = $oRole->getID(); } } $sRoleIDs = DBUtil::paramArray($aRoleIDs); $sQuery = "SELECT DISTINCT descriptor_id FROM $sTable WHERE role_id IN ( $sRoleIDs )"; $aParams = $aRoleIDs; $aIDs = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'descriptor_id'); $aRet = array(); foreach ($aIDs as $iID) { if ($ids === true) { $aRet[] = $iID; } else { $aRet[] =& KTPermissionDescriptor::get($iID); } } return $aRet; } // }}} // }}} // {{{ USERS // {{{ _clearUsers function _clearUsers() { unset($GLOBALS['_PDUC'][$this->getId()]); $sTable = KTUtil::getTableName('permission_descriptor_users'); $sQuery = "DELETE FROM $sTable WHERE descriptor_id = ?"; $aParams = array($this->getID()); $res = DBUtil::runQuery(array($sQuery, $aParams)); return $res; } // }}} // {{{ _addUser function _addUser($iID) { $sTable = KTUtil::getTableName('permission_descriptor_users'); $sQuery = "INSERT INTO $sTable (descriptor_id, user_id) VALUES (?, ?)"; $aParams = array($this->getID(), $iID); $res = DBUtil::runQuery(array($sQuery, $aParams)); return $res; } // }}} // {{{ hasUsers function hasUsers($aUsers) { $sTable = KTUtil::getTableName('permission_descriptor_users'); if (count($aUsers) === 0) { return false; } $aUserIDs = array(); foreach ($aUsers as $oUser) { $aUserIDs[] = $oUser->getID(); } $sUserIDs = DBUtil::paramArray($aUserIDs); $sQuery = "SELECT COUNT(user_id) AS num FROM $sTable WHERE descriptor_id = ? AND user_id IN ($sUserIDs)"; $aParams = array($this->getID()); $aParams = kt_array_merge($aParams, $aUserIDs); $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'num'); if (PEAR::isError($res)) { return $res; } if ((int)$res === 0) { return false; } return true; } // }}} // {{{ getUsers function getUsers() { if (isset($GLOBALS['_PDUC'][$this->getId()])) { return $GLOBALS['_PDUC'][$this->getId()]; } $sTable = KTUtil::getTableName('permission_descriptor_users'); $sQuery = "SELECT user_id FROM $sTable WHERE descriptor_id = ?"; $aParams = array($this->getID()); $res = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'user_id'); $GLOBALS['_PDUC'][$this->getId()] = $res; return $res; } // }}} // {{{ STATIC: getByUser function &getByUser($oUser, $aOptions = null) { $sTable = KTUtil::getTableName('permission_descriptor_users'); $sQuery = "SELECT descriptor_id FROM $sTable WHERE user_id = ?"; $aParams = array($oUser->getID()); $aIDs = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'descriptor_id'); if (is_null($aOptions)) { $aOptions = array(); } $ids = KTUtil::arrayGet($aOptions, 'ids'); $aRet = array(); foreach ($aIDs as $iID) { if ($ids === true) { $aRet[] = $iID; } else { $aRet[] =& KTPermissionDescriptor::get($iID); } } return $aRet; } // }}} // {{{ STATIC: getByUsers function &getByUsers($aUsers, $aOptions = null) { $sTable = KTUtil::getTableName('permission_descriptor_users'); if (is_null($aOptions)) { $aOptions = array(); } if (count($aUsers) === 0) { return array(); } $ids = KTUtil::arrayGet($aOptions, 'ids'); $aUserIDs = array(); foreach ($aUsers as $oUser) { if (is_numeric($oUser)) { $aUserIDs[] = $oUser; } else { $aUserIDs[] = $oUser->getID(); } } $sUserIDs = DBUtil::paramArray($aUserIDs); $sQuery = "SELECT DISTINCT descriptor_id FROM $sTable WHERE user_id IN ( $sUserIDs )"; $aParams = $aUserIDs; $aIDs = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'descriptor_id'); $aRet = array(); foreach ($aIDs as $iID) { if ($ids === true) { $aRet[] = $iID; } else { $aRet[] =& KTPermissionDescriptor::get($iID); } } return $aRet; } // }}} // }}}}?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?