/** @return \CDBResult */ public function getData() { $groupId = $this->getFieldValue('GROUP_ID', null); $dateRegister = $this->getFieldValue('DATE_REGISTER', null); $active = $this->getFieldValue('ACTIVE', null); $filter = array(); if ($groupId) { $filter['GROUP_ID'] = $groupId; } if (strlen($dateRegister) > 0) { if (\Bitrix\Main\Type\Date::isCorrect($dateRegister)) { $dateRegister = new \Bitrix\Main\Type\Date($dateRegister); $filter['><USER.DATE_REGISTER'] = array($dateRegister->toString(), $dateRegister->add('1 DAY')->toString()); } else { $result = new \CDBResult(); $result->InitFromArray(array()); return $result; } } if ($active == 'Y') { $filter['USER.ACTIVE'] = $active; } elseif ($active == 'N') { $filter['USER.ACTIVE'] = $active; } $userDb = \Bitrix\Main\UserGroupTable::getList(array('select' => array('NAME' => 'USER.NAME', 'EMAIL' => 'USER.EMAIL', 'USER_ID'), 'filter' => $filter, 'group' => array('NAME', 'EMAIL', 'USER_ID'), 'order' => array('USER_ID' => 'ASC'))); return new \CDBResult($userDb); }
protected static function getUserGroups($userId) { global $USER; if ($userId == $USER->GetID()) { $groups = $USER->GetUserGroupArray(); } else { static $cache; if (isset($cache[$userId])) { $groups = $cache[$userId]; } else { // TODO: DATE_ACTIVE_FROM >=< DATE_ACTIVE_TO $result = UserGroupTable::getList(array('select' => array('GROUP_ID'), 'filter' => array('USER_ID' => $userId))); $groups = array(); while ($row = $result->fetch()) { $groups[] = $row['GROUP_ID']; } $cache[$userId] = $groups; } } return $groups; }