• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/chat.php
  • Класс: BitrixImOpenLinesChat
  • Вызов: Chat::hasAccess
static function hasAccess(int $chatId): bool
{
	if (!MainLoader::includeModule('im'))
	{
		return false;
	}

	$chat = ChatTable::getByPrimary($chatId, ['select' => ['TYPE', 'ENTITY_ID', 'ENTITY_TYPE', 'ENTITY_DATA_1']])->fetch();
	if (!$chat)
	{
		return false;
	}

	if (!(
		$chat['TYPE'] === BitrixImChat::TYPE_OPEN_LINE
		|| $chat['TYPE'] === BitrixImChat::TYPE_GROUP && $chat['ENTITY_TYPE'] === 'LINES'
	))
	{
		return false;
	}

	$parsedUserCode = SessionCommon::parseUserCode($chat['ENTITY_ID']);
	$lineId = $parsedUserCode['CONFIG_ID'];

	$crmEntityType = null;
	$crmEntityId = null;

	if ($chat['ENTITY_DATA_1'] <> '')
	{
		$fieldData = explode("|", $chat['ENTITY_DATA_1']);
		if ($fieldData[0] === 'Y')
		{
			$crmEntityType = $fieldData[1];
			$crmEntityId = $fieldData[2];
		}
	}

	return Config::canJoin($lineId, $crmEntityType, $crmEntityId);
}