예제 #1
0
 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);
 }
예제 #2
0
 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;
 }
예제 #3
0
 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;
 }
예제 #4
0
<?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";
}