db; $sql->query(array("SELECT UGL.group_id " . /*ok*/ "FROM $default->users_groups_table AS UGL INNER JOIN $default->groups_table AS GL ON UGL.group_id = GL.id " . "WHERE UGL.user_id = ? " . "AND is_sys_admin = ?", array($iUserID, true))); if ($sql->next_record()) { return true; } return false; } function isUnitAdministratorForFolder($oUser, $oFolder) { $oFolder =& KTUtil::getObject('Folder', $oFolder); $oUser =& KTUtil::getObject('User', $oUser); $sUnitTable = KTUtil::getTableName('units'); if (PEAR::isError($oFolder)) { // can't be admin for a non-existant folder. return false; } $sFolderIds = $oFolder->getParentFolderIds(); $aFolderIds = split(",", $sFolderIds); $aFolderIds[] = $oFolder->getId(); $sParams = DBUtil::paramArray($aFolderIds); $aParams = $aFolderIds; $sQuery = "SELECT id FROM $sUnitTable WHERE folder_id IN ($sParams)"; $aUnitIds = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'id'); foreach($aUnitIds as $iUnitId) { $aGroups = Group::getUnitAdministratorGroupsByUnit($iUnitId); foreach ($aGroups as $oGroup) { if ($oGroup->hasMember($oUser)) { return true; } } } return false; } } ?>