• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/user.php
  • Класс: BitrixImUser
  • Вызов: User::getBusiness
static function getBusiness($userId = null, $options = array())
{
	$userId = BitrixImCommon::getUserId($userId);
	if (!$userId)
	{
		return false;
	}

	$pagination = isset($options['LIST'])? true: false;

	$limit = isset($options['LIST']['LIMIT'])? intval($options['LIST']['LIMIT']): 50;
	$offset = isset($options['LIST']['OFFSET'])? intval($options['LIST']['OFFSET']): 0;

	$list = Array();

	$businessUsersAvailable = false;
	if (BitrixMainLoader::includeModule('bitrix24') && !CBitrix24BusinessTools::isLicenseUnlimited())
	{
		$businessUsers = CBitrix24BusinessTools::getUnlimUsers();

		if (User::getInstance($userId)->isExtranet())
		{
			$extranetBusinessResult = [];
			$groups = BitrixImIntegrationSocialnetworkExtranet::getGroup(Array(), $userId);
			if (is_array($groups))
			{
				foreach ($groups as $group)
				{
					foreach ($group['USERS'] as $uid)
					{
						if (in_array($uid, $businessUsers))
						{
							$extranetUserList[$uid] = $uid;
						}
					}
				}
			}
			$list = $extranetBusinessResult;
		}
		else
		{
			foreach ($businessUsers as $userId)
			{
				$list[$userId] = $userId;
			}
		}

		$businessUsersAvailable = true;
	}

	$count = count($list);

	$list = array_slice($list, $offset, $limit);

	if ($options['USER_DATA'] == 'Y')
	{
		$result = Array();

		$getOptions = Array();
		if ($options['JSON'] == 'Y')
		{
			$getOptions['JSON'] = 'Y';
		}

		foreach ($list as $userId)
		{
			$result[] = BitrixImUser::getInstance($userId)->getArray($getOptions);
		}
	}
	else
	{
		$result = array_values($list);
	}

	if ($pagination)
	{
		$result = Array('TOTAL' => $count, 'RESULT' => $result, 'AVAILABLE' => $businessUsersAvailable);

		if ($options['JSON'] == 'Y')
		{
			$result = array_change_key_case($result, CASE_LOWER);
		}
	}
	else
	{
		if (!$businessUsersAvailable)
		{
			$result = false;
		}
	}

	return $result;
}