function getGroupStringForUser($oUser) { $aGroupNames = array(); $aGroups = GroupUtil::listGroupsForUser($oUser); $MAX_GROUPS = 6; $add_elipsis = false; if (count($aGroups) == 0) { return _kt('User is currently not a member of any groups.'); } if (count($aGroups) > $MAX_GROUPS) { $aGroups = array_slice($aGroups, 0, $MAX_GROUPS); $add_elipsis = true; } foreach ($aGroups as $oGroup) { $aGroupNames[] = $oGroup->getName(); } if ($add_elipsis) { $aGroupNames[] = '…'; } return implode(', ', $aGroupNames); }
function _listGroupIDsForUserExpand($oUser) { $iUserId = KTUtil::getId($oUser); global $default; $oCache = KTCache::getSingleton(); $group = "groupidsforuser"; if (PEAR::isError($oUser)) { var_dump($oUser); } list($bCached, $mCached) = $oCache->get($group, $oUser->getId()); if ($bCached) { if (KTLOG_CACHE) { $default->log->debug(sprintf("Using group cache for _listGroupIDsForUserExpand %d", $iUserId)); } return $mCached; } $aGroupArray = GroupUtil::_invertGroupArray(GroupUtil::buildGroupArray()); $aDirectGroups = GroupUtil::listGroupsForUser($oUser); $sQuery = "SELECT group_id FROM {$default->users_groups_table} WHERE user_id = ?"; $aParams = array($iUserId); $aGroupIDs = DBUtil::getResultArrayKey(array($sQuery, $aParams), "group_id"); foreach ($aGroupIDs as $iGroupID) { $aExtraIDs = KTUtil::arrayGet($aGroupArray, $iGroupID); if (is_array($aExtraIDs)) { $aGroupIDs = kt_array_merge($aGroupIDs, $aExtraIDs); } } $aGroupIDs = array_unique($aGroupIDs); sort($aGroupIDs); $oCache->set($group, $oUser->getId(), $aGroupIDs); return $aGroupIDs; }
function json_getUsers() { $oConfig = KTConfig::getSingleton(); $bOnlyOwnGroup = $oConfig->get('email/onlyOwnGroups', false); $sFilter = KTUtil::arrayGet($_REQUEST, 'filter', false); $aUserList = array('off' => _kt('-- Please filter --')); if ($sFilter && trim($sFilter)) { $sWhere = sprintf('name LIKE \'%%%s%%\' AND disabled = \'0\'', $sFilter); if ($bOnlyOwnGroup != true) { $aUsers = User::getEmailUsers($sWhere); } else { $aGroups = GroupUtil::listGroupsForUser($this->oUser); $aMembers = array(); foreach ($aGroups as $oGroup) { $aMembers = kt_array_merge($aMembers, $oGroup->getMembers()); } $aUsers = array(); $aUserIds = array(); foreach ($aMembers as $oUser) { if (in_array($oUser->getId(), $aUserIds)) { continue; } $aUsers[] = $oUser; } } $aUserList = array(); foreach ($aUsers as $u) { $aUserList[$u->getId()] = $u->getName(); } } return $aUserList; }
<?php require_once "../../../config/dmsDefaults.php"; require_once KT_LIB_DIR . '/groups/GroupUtil.php'; $oUser = User::get(1); foreach (GroupUtil::listGroupsForUser($oUser) as $oGroup) { print $oGroup->getName() . "\n"; }