debug: логирование switchTo, resolveContext, enhanceImpersonation
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
// ═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
module.exports = {
|
||||
version: '0.5.123',
|
||||
version: '0.5.125',
|
||||
|
||||
// ── IAM ──────────────────────────────────────────────────────────────────
|
||||
iamUrl: process.env.V2_IAM_URL || 'https://auth-api.ngcloud.ru/api/v1/auth/user',
|
||||
|
||||
@@ -26,9 +26,24 @@ function enhanceImpersonation(req, res, next) {
|
||||
const u = req.session && req.session.user;
|
||||
if (!u) return next();
|
||||
|
||||
console.log('[v2:impersonation] enter', {
|
||||
sessionID: req.sessionID,
|
||||
email: u.email,
|
||||
activeClientId: u.activeClientId,
|
||||
clientId: u.clientId,
|
||||
isImpersonated: u.isImpersonated,
|
||||
originalUserEmail: u.originalUserEmail,
|
||||
path: req.originalUrl,
|
||||
});
|
||||
|
||||
// ── IAM-имперсонация (уже есть в сессии) — просто добавляем компании ──
|
||||
if (u.isImpersonated && u.originalUserEmail === ORIGINAL_EMAIL) {
|
||||
addExtraCompanies(u);
|
||||
console.log('[v2:impersonation] addExtraCompanies', {
|
||||
sessionID: req.sessionID,
|
||||
activeClientId: u.activeClientId,
|
||||
allClientIds: u.allClientIds,
|
||||
});
|
||||
return next();
|
||||
}
|
||||
|
||||
@@ -56,6 +71,14 @@ function enhanceImpersonation(req, res, next) {
|
||||
is_active_profile: cid === MAIN_COMPANY,
|
||||
}));
|
||||
|
||||
console.log('[v2:impersonation] applied test impersonation', {
|
||||
sessionID: req.sessionID,
|
||||
activeClientId: u.activeClientId,
|
||||
clientId: u.clientId,
|
||||
originalUserEmail: u.originalUserEmail,
|
||||
allClientIds: u.allClientIds,
|
||||
});
|
||||
|
||||
return next();
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,15 @@
|
||||
function resolveContext(req, res, next) {
|
||||
const u = req.session && req.session.user;
|
||||
|
||||
console.log('[v2:resolveContext] enter', {
|
||||
sessionID: req.sessionID,
|
||||
hasSession: !!req.session,
|
||||
hasUser: !!u,
|
||||
sessionActiveClientId: u ? u.activeClientId : null,
|
||||
sessionClientId: u ? u.clientId : null,
|
||||
url: req.originalUrl,
|
||||
});
|
||||
|
||||
// Нет сессии — нет доступа
|
||||
if (!u) return res.redirect('/v2/login');
|
||||
|
||||
@@ -53,6 +62,14 @@ function resolveContext(req, res, next) {
|
||||
req.allClientIds = allCids;
|
||||
req.profiles = u.profiles || [];
|
||||
|
||||
console.log('[v2:resolveContext] exit', {
|
||||
sessionID: req.sessionID,
|
||||
reqClientId: req.clientId,
|
||||
reqEmail: req.email,
|
||||
canAdmin: req.canAdmin,
|
||||
isImpersonated: req.isImpersonated,
|
||||
});
|
||||
|
||||
next();
|
||||
}
|
||||
|
||||
|
||||
+19
-1
@@ -54,9 +54,23 @@ function createUserRouter() {
|
||||
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,
|
||||
});
|
||||
req.session.user.activeClientId = targetId;
|
||||
return req.session.save(err => {
|
||||
if (err) console.error('[switchTo] save error:', err.message);
|
||||
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');
|
||||
});
|
||||
}
|
||||
@@ -83,6 +97,10 @@ function createUserRouter() {
|
||||
entries, limit, used,
|
||||
companies,
|
||||
activeClientId: 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 || '') : '',
|
||||
user: templateUser,
|
||||
includeDeleted,
|
||||
version: config.version,
|
||||
|
||||
Reference in New Issue
Block a user