• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/Configuration/General.php
  • Класс: BitrixImConfigurationGeneral
  • Вызов: General::filterAllowedUsersBySimpleNotificationSettings
static function filterAllowedUsersBySimpleNotificationSettings(array $userList, string $notifyType): array
{
	if (empty($userList))
	{
		return $userList;
	}

	$settingName = static::getNotifySettingByType($notifyType);
	if ($settingName === '')
	{
		return $userList;
	}

	$encodedSettingName = static::encodeName($settingName);
	$encodedDefaultSettings = static::encodeSettings(static::getDefaultSettings());

	if (!array_key_exists($encodedSettingName, $encodedDefaultSettings))
	{
		return $userList;
	}

	$filteredUsers = [];
	if (count($userList) < 1000)
	{
		$filteredUsers = static::filterChunk($userList, $settingName);
	}
	else
	{
		$chunkList = array_chunk($userList, static::CHUNK_LENGTH);
		foreach ($chunkList as $chunk)
		{
			$filteredUsers = array_merge($filteredUsers, static::filterChunk($chunk, $settingName));
		}
	}

	return $filteredUsers;
}