- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_rest.php
- Класс: CIMRestService
- Вызов: CIMRestService::userList
static function userList($arParams, $offset, CRestServer $server)
{
$arParams = array_change_key_case($arParams, CASE_UPPER);
$users = Array();
if (is_string($arParams['ID']))
{
$arParams['ID'] = CUtil::JsObjectToPhp($arParams['ID']);
}
if (is_array($arParams['ID']))
{
foreach ($arParams['ID'] as $userId)
{
$userId = intval($userId);
if ($userId > 0)
{
$users[$userId] = $userId;
}
}
}
if (empty($users))
{
throw new BitrixRestRestException("A wrong format for the ID field is passed", "INVALID_FORMAT", CRestServer::STATUS_WRONG_REQUEST);
}
$currentUserId = BitrixImUser::getInstance()->getId();
$isExtranet = BitrixImUser::getInstance()->isExtranet();
$extranetUsers = Array($currentUserId);
if ($isExtranet)
{
$groups = BitrixImIntegrationSocialnetworkExtranet::getGroup(Array(), $currentUserId);
if (is_array($groups))
{
foreach ($groups as $group)
{
foreach ($group['USERS'] as $userId)
{
$extranetUsers[$userId] = $userId;
}
}
}
}
$result = Array();
foreach ($users as $userId)
{
if ($isExtranet && !isset($extranetUsers[$userId]))
{
continue;
}
$result[$userId] = BitrixImUser::getInstance($userId)->getArray(Array('JSON' => 'Y', 'HR_PHOTO' => isset($arParams['AVATAR_HR']) && $arParams['AVATAR_HR'] == 'Y'));
}
$arParams['RESULT_TYPE'] ??= '';
if (mb_strtolower(($arParams['RESULT_TYPE'] ?? '')) === 'array')
{
$result = array_values($result);
}
return $result;
}