From ee0cf68fe399ecf475e5445ebab9c06546b82389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 15 Jun 2026 16:37:29 +0400 Subject: [PATCH] =?UTF-8?q?v0.5.125:=20switchTo=20=D0=B1=D0=B5=D0=B7=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=B0,=20?= =?UTF-8?q?=D0=B4=D0=B5=D0=B1=D0=B0=D0=B3=20=D0=BD=D0=B0=20=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v2/src/user/index.js | 25 ++++++------------------- views/v2/user.ejs | 8 ++++++++ 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/v2/src/user/index.js b/v2/src/user/index.js index e7f2fec..2699ab9 100644 --- a/v2/src/user/index.js +++ b/v2/src/user/index.js @@ -50,29 +50,15 @@ function createUserRouter() { } // ── Переключение компании (до crud.list — не грузить зря) ──── + let switchDebug = null; if (req.query.switchTo) { const targetId = req.query.switchTo; const allowed = isAdmin || (req.profiles || []).find(p => p.client_id === targetId); if (allowed) { - console.log('[v2:switchTo] before save', { - sessionID: req.sessionID, - oldActiveClientId: req.session && req.session.user ? req.session.user.activeClientId : null, - oldClientId: req.session && req.session.user ? req.session.user.clientId : null, - targetId, - email: req.email, - }); + const oldId = req.session.user.activeClientId; req.session.user.activeClientId = targetId; - return req.session.save(err => { - if (err) { - console.error('[v2:switchTo] save error:', err.message); - } else { - console.log('[v2:switchTo] after save', { - sessionID: req.sessionID, - savedActiveClientId: req.session && req.session.user ? req.session.user.activeClientId : null, - }); - } - res.redirect('/v2/app'); - }); + // clId теперь новый — рендерим сразу, без редиректа + switchDebug = { from: oldId, to: targetId, sessionID: req.sessionID }; } } @@ -96,11 +82,12 @@ function createUserRouter() { res.render('v2/user', { entries, limit, used, companies, - activeClientId: clId, + activeClientId: switchDebug ? switchDebug.to : clId, debugClientId: clId, sessionId: req.sessionID || '', sessionActiveClientId: req.session && req.session.user ? (req.session.user.activeClientId || '') : '', sessionClientId: req.session && req.session.user ? (req.session.user.clientId || '') : '', + switchDebug, user: templateUser, includeDeleted, version: config.version, diff --git a/views/v2/user.ejs b/views/v2/user.ejs index 01fde4d..a666de8 100644 --- a/views/v2/user.ejs +++ b/views/v2/user.ejs @@ -139,6 +139,14 @@ + <% if (typeof switchDebug !== 'undefined' && switchDebug) { %> +
+ DEBUG SWITCH: <%= switchDebug.from %> → <%= switchDebug.to %> + | sessionID: <%= switchDebug.sessionID %> + | activeClientId: <%= activeClientId %> +
+ <% } %> + <% if (user.isImpersonated) { %>
⚠️ Режим имперсонации — данные сохраняются от имени <%= activeClientId %>