• Модуль: 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;
}