ваше сообщение коммита

This commit is contained in:
2025-12-12 14:48:04 +03:00
parent 863759e3e7
commit ef60b1c457
2 changed files with 156 additions and 51 deletions

View File

@@ -162,9 +162,9 @@ class EmailAuth {
// Проверяем код через сервис верификации
const result = await verificationService.verifyCode(code, 'email', session.pendingEmail);
if (!result.success) {
if (!result.valid) {
// Используем сообщение об ошибке из сервиса верификации
return { verified: false, message: result.error || 'Неверный код верификации' };
return { verified: false, message: result.message || 'Неверный код верификации' };
}
const email = session.pendingEmail.toLowerCase();
@@ -238,14 +238,26 @@ class EmailAuth {
await authService.identityService.saveIdentity(finalUserId, 'email', email, true);
logger.info(`[checkEmailVerification] Added email identity ${email} for user ${finalUserId}`);
// Мигрируем гостевые сообщения web канала, если есть (только для web-гостей, которые писали до авторизации)
if (session.guestId) {
const universalGuestService = require('./UniversalGuestService');
const webIdentifier = `web:${session.guestId}`;
try {
await universalGuestService.migrateToUser(webIdentifier, finalUserId);
logger.info(`[checkEmailVerification] Migrated web guest messages for ${webIdentifier} to user ${finalUserId}`);
} catch (migrateError) {
logger.warn(`[checkEmailVerification] Could not migrate web guest messages: ${migrateError.message}`);
}
}
// ----> НАЧАЛО: Проверка роли на основе привязанного кошелька
let userRole = 'user'; // Роль по умолчанию
try {
const linkedWallet = await authService.getLinkedWallet(finalUserId);
if (linkedWallet) {
logger.info(`[checkEmailVerification] Found linked wallet ${linkedWallet} for user ${finalUserId}. Checking user role...`);
if (linkedWallet && linkedWallet.provider_id) {
logger.info(`[checkEmailVerification] Found linked wallet ${linkedWallet.provider_id} for user ${finalUserId}. Checking user role...`);
const authService = require('./auth-service');
const userAccessLevel = await authService.getUserAccessLevel(linkedWallet);
const userAccessLevel = await authService.getUserAccessLevel(linkedWallet.provider_id);
const { ROLES } = require('/app/shared/permissions');
// Используем роль из userAccessLevel, которая уже правильно определена с учетом порогов
userRole = userAccessLevel.level;
@@ -266,14 +278,6 @@ class EmailAuth {
}
// ----> КОНЕЦ: Проверка роли
// Если есть гостевой ID, добавляем его тоже
if (session.guestId) {
await authService.identityService.saveIdentity(finalUserId, 'guest', session.guestId, true);
logger.info(
`[checkEmailVerification] Added guest identity ${session.guestId} for user ${finalUserId}`
);
}
// Очищаем временные данные
delete session.pendingEmail;
if (session.tempUserId) {