v0.5.116: фикс impersonatedCompanyId в сессии + тестовая имперсонация по трём ENV

This commit is contained in:
2026-06-15 15:05:21 +04:00
parent dc1f629560
commit cb1e4fac22
4 changed files with 12 additions and 11 deletions
+7 -7
View File
@@ -32,24 +32,24 @@ function enhanceImpersonation(req, res, next) {
return next();
}
// ── Тестовый режим: полная подмена данных ───────────────────────────
if (TARGET_EMAIL && u.email === ORIGINAL_EMAIL) {
// ── Тестовый режим: нужны все три — ORIGINAL, TARGET, COMPANY ────────
if (ORIGINAL_EMAIL && TARGET_EMAIL && MAIN_COMPANY && u.email === ORIGINAL_EMAIL) {
// Сохраняем isAdmin от оригинала
const wasAdmin = u.isAdmin || (u.allClientIds || []).includes('WZ01112') || u.clientId === 'WZ01112';
// Подменяем ВСЕ данные на таргета (как делает IAM)
u.email = TARGET_EMAIL;
u.clientId = MAIN_COMPANY || u.clientId;
u.activeClientId = MAIN_COMPANY || u.clientId;
u.clientId = MAIN_COMPANY;
u.activeClientId = MAIN_COMPANY;
u.allClientIds = ALL_TARGET_CIDS;
u.companyName = MAIN_COMPANY;
u.isAdmin = wasAdmin; // админство сохраняется
u.isAdmin = wasAdmin;
u.isImpersonated = true;
u.impersonatedCompanyId = MAIN_COMPANY;
u.originalUserEmail = ORIGINAL_EMAIL;
u.originalUserFullName = u.fio ? (u.fio.fullName || '') : '';
u.fio = null; // фио таргета неизвестно
u.fio = null;
// Профили таргета (имитация)
u.profiles = ALL_TARGET_CIDS.map(cid => ({
client_id: cid,
company_name: cid,