- Модуль: imbot
- Путь к файлу: ~/bitrix/modules/imbot/lib/bot/network.php
- Класс: BitrixImBotBotNetwork
- Вызов: Network::onCommandAdd
static function onCommandAdd($messageId, $messageFields)
{
$command = static::getCommandByMessage($messageFields);
if (!$command)
{
return false;
}
if ($messageFields['COMMAND'] === self::COMMAND_NETWORK_SESSION)
{
if (empty($messageFields['CONNECTOR_MID']))
{
$messageParams = CIMMessageParam::get($messageId, self::MESSAGE_PARAM_CONNECTOR_MID);
$messageFields['CONNECTOR_MID'] = $messageParams[0];
}
self::disableMessageButtons((int)$messageId);
self::clientCommandSend([
'BOT_ID' => static::getBotId(),
'USER_ID' => $messageFields['FROM_USER_ID'],
'DIALOG_ID' => $messageFields['DIALOG_ID'],
'MESSAGE_ID' => $messageFields['CONNECTOR_MID'],
'CONNECTOR_MID' => $messageId,
'COMMAND' => $messageFields['COMMAND'],
'COMMAND_ID' => $messageFields['COMMAND_ID'],
'COMMAND_PARAMS' => $messageFields['COMMAND_PARAMS'],
'COMMAND_CONTEXT' => $messageFields['COMMAND_CONTEXT'],
]);
return true;
}
elseif ($messageFields['COMMAND'] === self::COMMAND_UNREGISTER)
{
$grantAccess = MainModuleManager::isModuleInstalled('bitrix24')
? self::getCurrentUser()->canDoOperation('bitrix24_config')
: self::getCurrentUser()->isAdmin();
if ($grantAccess)
{
$botData = ImBot::getCache($messageFields['TO_USER_ID']);
if ($botData['CLASS'] === __CLASS__)
{
return self::unRegister($botData['APP_ID']);
}
}
}
return false;
}