- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_rest.php
- Класс: CIMRestService
- Вызов: CIMRestService::userGet
static function userGet($arParams, $n, CRestServer $server)
{
$arParams = array_change_key_case($arParams, CASE_UPPER);
$userId = null;
if (isset($arParams['ID']))
{
$userId = intval($arParams['ID']);
if ($userId <= 0)
{
throw new BitrixRestRestException("User ID can't be empty", "ID_EMPTY", CRestServer::STATUS_WRONG_REQUEST);
}
}
$user = BitrixImUser::getInstance($userId);
if ($user->isExists())
{
$userId = $user->getId();
}
else
{
throw new BitrixRestRestException("User is not exists", "USER_NOT_EXISTS", CRestServer::STATUS_WRONG_REQUEST);
}
$currentUserId = BitrixImUser::getInstance()->getId();
$isExtranet = BitrixImUser::getInstance()->isExtranet();
if ($isExtranet && !BitrixImIntegrationSocialnetworkExtranet::isUserInGroup($userId, $currentUserId))
{
throw new BitrixRestRestException("You can request only users who consist of your extranet group", "ACCESS_DENIED", CRestServer::STATUS_WRONG_REQUEST);
}
$result = $user->getArray(Array('JSON' => 'Y', 'HR_PHOTO' => isset($arParams['AVATAR_HR']) && $arParams['AVATAR_HR'] == 'Y'));
$result['desktop_last_date'] = CIMMessenger::GetDesktopStatusOnline($userId);
$result['desktop_last_date'] = $result['desktop_last_date']? date('c', $result['desktop_last_date']): false;
return $result;
}