• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/queue/event.php
  • Класс: BitrixImOpenLinesQueueEvent
  • Вызов: Event::onUserDelete
static function onUserDelete($userId)
{
	if (
		!empty($userId) &&
		is_numeric($userId) &&
		ImOpenLinesQueue::isRealOperator($userId)
	)
	{
		$linesOperator = self::getLineIsOperator($userId);
		$linesIsSessionOperator = self::getLineIsSessionOperatorNotLine($userId);

		if (!empty($linesIsSessionOperator))
		{
			foreach ($linesIsSessionOperator as $lineId)
			{
				$configManager = self::initialization($lineId);
				if(!empty($configManager))
				{
					$configManager->returnSessionsUsersToQueue([$userId], ImOpenLinesQueue::REASON_OPERATOR_DELETED);
				}
			}
		}

		if (!empty($linesOperator))
		{
			self::$linesUsersDelete[$userId] = $linesOperator;
			foreach ($linesOperator as $lineId)
			{
				$queueManager = new QueueManager($lineId);
				$queueManager->deleteItemsConfigQueue([['ENTITY_ID' => $userId, 'ENTITY_TYPE' => 'user']]);
			}
		}

		ImOpenLinesDebug::addQueueEvent( __METHOD__, 0, 0, ['userId' => $userId, 'linesOperator' => $linesOperator, 'linesIsSessionOperator' => $linesIsSessionOperator]);
	}

	return true;
}