ваше сообщение коммита
This commit is contained in:
@@ -716,11 +716,18 @@ class UniversalGuestService {
|
|||||||
|
|
||||||
// 5. Переносим согласия гостя на пользователя, если они есть
|
// 5. Переносим согласия гостя на пользователя, если они есть
|
||||||
// Согласия могут быть связаны с гостевой сессией через wallet_address = "guest_${guestId}"
|
// Согласия могут быть связаны с гостевой сессией через wallet_address = "guest_${guestId}"
|
||||||
|
// Только для web-гостей (формат: web:guest_xxx)
|
||||||
try {
|
try {
|
||||||
const [channel, guestId] = identifier.split(':');
|
const [channel, guestId] = identifier.split(':');
|
||||||
|
|
||||||
|
// Мигрируем согласия только для web-гостей
|
||||||
|
if (channel !== 'web' || !guestId?.startsWith('guest_')) {
|
||||||
|
logger.info(`[UniversalGuestService] Пропуск миграции согласий для ${identifier} (не web-гость)`);
|
||||||
|
return { migrated, skipped };
|
||||||
|
}
|
||||||
|
|
||||||
// Ищем согласия по гостевому идентификатору в формате "guest_${guestId}"
|
// Ищем согласия по гостевому идентификатору в формате "guest_${guestId}"
|
||||||
const guestWalletAddress = `guest_${guestId}`;
|
const guestWalletAddress = guestId; // Уже в формате "guest_xxx"
|
||||||
|
|
||||||
const { rows: guestConsents } = await db.getQuery()(`
|
const { rows: guestConsents } = await db.getQuery()(`
|
||||||
SELECT id, consent_type, document_id, document_title, status, signed_at, ip_address, user_agent, channel as consent_channel
|
SELECT id, consent_type, document_id, document_title, status, signed_at, ip_address, user_agent, channel as consent_channel
|
||||||
|
|||||||
@@ -497,7 +497,7 @@ class EmailBot {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
channel: 'email',
|
channel: 'email',
|
||||||
identifier: fromEmail,
|
identifier: `email:${fromEmail}`, // Формируем identifier с префиксом provider
|
||||||
content: text,
|
content: text,
|
||||||
contentData: contentData,
|
contentData: contentData,
|
||||||
attachments: mediaFiles, // Обратная совместимость
|
attachments: mediaFiles, // Обратная совместимость
|
||||||
|
|||||||
@@ -313,7 +313,7 @@ class TelegramBot {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
channel: 'telegram',
|
channel: 'telegram',
|
||||||
identifier: telegramId,
|
identifier: `telegram:${telegramId}`, // Формируем identifier с префиксом provider
|
||||||
content: content,
|
content: content,
|
||||||
contentData: contentData,
|
contentData: contentData,
|
||||||
attachments: mediaFiles, // Обратная совместимость
|
attachments: mediaFiles, // Обратная совместимость
|
||||||
|
|||||||
@@ -115,6 +115,18 @@ async function processMessage(messageData) {
|
|||||||
// 1. Разбираем идентификатор
|
// 1. Разбираем идентификатор
|
||||||
const [provider, providerId] = identifier.split(':');
|
const [provider, providerId] = identifier.split(':');
|
||||||
|
|
||||||
|
// Проверяем формат identifier (должен быть provider:providerId)
|
||||||
|
if (!providerId) {
|
||||||
|
logger.warn(`[UnifiedMessageProcessor] Неверный формат identifier (нет префикса): ${identifier}, обрабатываем как гостя`);
|
||||||
|
return await universalGuestService.processMessage({
|
||||||
|
identifier,
|
||||||
|
content,
|
||||||
|
channel,
|
||||||
|
metadata,
|
||||||
|
...messageData
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 2. Для telegram/email: автоматически создаем пользователя, если его нет
|
// 2. Для telegram/email: автоматически создаем пользователя, если его нет
|
||||||
if ((provider === 'telegram' || provider === 'email') && providerId) {
|
if ((provider === 'telegram' || provider === 'email') && providerId) {
|
||||||
let user = await identityService.findUserByIdentity(provider, providerId);
|
let user = await identityService.findUserByIdentity(provider, providerId);
|
||||||
@@ -509,6 +521,11 @@ async function checkIfGuest(identifier) {
|
|||||||
// Разбираем идентификатор
|
// Разбираем идентификатор
|
||||||
const [provider, providerId] = identifier.split(':');
|
const [provider, providerId] = identifier.split(':');
|
||||||
|
|
||||||
|
// Если нет providerId (старый формат без префикса) - считаем гостем
|
||||||
|
if (!providerId) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// Проверяем что это не web:guest_*
|
// Проверяем что это не web:guest_*
|
||||||
if (provider === 'web' && providerId.startsWith('guest_')) {
|
if (provider === 'web' && providerId.startsWith('guest_')) {
|
||||||
return true; // Это web гость
|
return true; // Это web гость
|
||||||
|
|||||||
Reference in New Issue
Block a user