- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/access/chatauthprovider.php
- Класс: BitrixImAccessChatAuthProvider
- Вызов: ChatAuthProvider::addChatCodes
public function addChatCodes(int $chatId, array $userIds): void
{
$userIds = array_filter(array_map('intVal', $userIds));
if ($chatId > 0 && !empty($userIds))
{
$connection = BitrixMainApplication::getConnection();
$helper = $connection->getSqlHelper();
$providerId = $helper->forSql($this->id);
$accessCode = $helper->forSql($this->generateAccessCode($chatId));
$users = implode(',', $userIds);
$connection->queryExecute(/** @lang mysql */ "
INSERT INTO b_user_access (USER_ID, PROVIDER_ID, ACCESS_CODE)
SELECT ID, '{$providerId}', '{$accessCode}'
FROM b_user
WHERE ID IN({$users})
");
foreach ($userIds as $uid)
{
CAccess::ClearCache($uid);
}
}
}