v2: убран v2_ префикс из req.* — роутер и модули согласованы

This commit is contained in:
2026-06-12 21:19:43 +04:00
parent 53dec84045
commit cd49398660
4 changed files with 18 additions and 18 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ipwhitelist", "name": "ipwhitelist",
"version": "0.5.78", "version": "0.5.79",
"description": "IP WhiteList microservice for cloud provider", "description": "IP WhiteList microservice for cloud provider",
"main": "server.js", "main": "server.js",
"scripts": { "scripts": {
+1 -1
View File
@@ -6,7 +6,7 @@
// ═══════════════════════════════════════════════════════════════════════════════ // ═══════════════════════════════════════════════════════════════════════════════
module.exports = { module.exports = {
version: '0.5.78', version: '0.5.79',
iamUrl: process.env.V2_IAM_API_URL || 'https://auth-api.ngcloud.ru', iamUrl: process.env.V2_IAM_API_URL || 'https://auth-api.ngcloud.ru',
appUrl: process.env.V2_APP_URL || 'https://whitelist.nodejsk8s.services.ngcloud.ru', appUrl: process.env.V2_APP_URL || 'https://whitelist.nodejsk8s.services.ngcloud.ru',
}; };
+9 -9
View File
@@ -4,7 +4,7 @@
// ═══════════════════════════════════════════════════════════════════════════════ // ═══════════════════════════════════════════════════════════════════════════════
/** /**
* middleware — извлекает контекст из сессии и кладёт в req.v2_* * middleware — извлекает контекст из сессии и кладёт в req.*
* Вызывается перед всеми маршрутами v2. * Вызывается перед всеми маршрутами v2.
*/ */
function resolveContext(req, res, next) { function resolveContext(req, res, next) {
@@ -15,15 +15,15 @@ function resolveContext(req, res, next) {
const isImpersonated = !!u.isImpersonated; const isImpersonated = !!u.isImpersonated;
// Контекст для CRUD // Контекст для CRUD
req.v2_email = isImpersonated ? (u.originalUserEmail || u.email) : u.email; req.email = isImpersonated ? (u.originalUserEmail || u.email) : u.email;
req.v2_clientId = isImpersonated ? (u.impersonatedCompanyId || u.activeClientId || u.clientId) : (u.activeClientId || u.clientId); req.clientId = isImpersonated ? (u.impersonatedCompanyId || u.activeClientId || u.clientId) : (u.activeClientId || u.clientId);
req.v2_isAdmin = isAdmin; req.isAdmin = isAdmin;
req.v2_isImpersonated = isImpersonated; req.isImpersonated = isImpersonated;
req.v2_impersonatedBy = isImpersonated ? u.email : null; // кто реально (для аудита) req.impersonatedBy = isImpersonated ? u.email : null; // кто реально (для аудита)
req.user = u; req.user = u;
req.v2_allClientIds = u.allClientIds || []; req.allClientIds = u.allClientIds || [];
req.v2_profiles = u.profiles || []; req.profiles = u.profiles || [];
req.v2_companyName = u.companyName || u.clientId; req.companyName = u.companyName || u.clientId;
next(); next();
} }
+7 -7
View File
@@ -26,39 +26,39 @@ t('нет user', { user: null }, { _redirect: '/v2/login' });
t('обычный юзер 1 компания', { user: { t('обычный юзер 1 компания', { user: {
email: 'u@t.ru', clientId: 'WZ03709', activeClientId: 'WZ03709', email: 'u@t.ru', clientId: 'WZ03709', activeClientId: 'WZ03709',
allClientIds: ['WZ03709'], companyName: 'test', isAdmin: false, profiles: [] allClientIds: ['WZ03709'], companyName: 'test', isAdmin: false, profiles: []
}}, { 'v2_email': 'u@t.ru', 'v2_clientId': 'WZ03709', 'v2_isAdmin': false, 'v2_isImpersonated': false, 'v2_impersonatedBy': null }); }}, { 'email': 'u@t.ru', 'clientId': 'WZ03709', 'isAdmin': false, 'isImpersonated': false, 'impersonatedBy': null });
t('юзер 2 компании', { user: { t('юзер 2 компании', { user: {
email: 'm@t.ru', clientId: 'WZ88888', activeClientId: 'WZ77777', email: 'm@t.ru', clientId: 'WZ88888', activeClientId: 'WZ77777',
allClientIds: ['WZ88888','WZ77777'], companyName: 'AB', isAdmin: false, profiles: [] allClientIds: ['WZ88888','WZ77777'], companyName: 'AB', isAdmin: false, profiles: []
}}, { 'v2_email': 'm@t.ru', 'v2_clientId': 'WZ77777', 'v2_allClientIds': ['WZ88888','WZ77777'] }); }}, { 'email': 'm@t.ru', 'clientId': 'WZ77777', 'allClientIds': ['WZ88888','WZ77777'] });
t('админ adminMode', { user: { t('админ adminMode', { user: {
email: 'a@t.ru', clientId: 'WZ01112', activeClientId: 'WZ01112', email: 'a@t.ru', clientId: 'WZ01112', activeClientId: 'WZ01112',
allClientIds: ['WZ01112'], isAdmin: true, profiles: [] allClientIds: ['WZ01112'], isAdmin: true, profiles: []
}, adminMode: true }, { 'v2_email': 'a@t.ru', 'v2_clientId': 'WZ01112', 'v2_isAdmin': true }); }, adminMode: true }, { 'email': 'a@t.ru', 'clientId': 'WZ01112', 'isAdmin': true });
t('админ без adminMode', { user: { t('админ без adminMode', { user: {
email: 'a@t.ru', clientId: 'WZ01112', activeClientId: 'WZ01112', email: 'a@t.ru', clientId: 'WZ01112', activeClientId: 'WZ01112',
allClientIds: ['WZ01112'], isAdmin: true, profiles: [] allClientIds: ['WZ01112'], isAdmin: true, profiles: []
} }, { 'v2_email': 'a@t.ru', 'v2_clientId': 'WZ01112', 'v2_isAdmin': false }); } }, { 'email': 'a@t.ru', 'clientId': 'WZ01112', 'isAdmin': false });
t('имперсонация', { user: { t('имперсонация', { user: {
email: 'admin@t.ru', clientId: 'WZ01112', activeClientId: 'WZ01112', email: 'admin@t.ru', clientId: 'WZ01112', activeClientId: 'WZ01112',
allClientIds: ['WZ01112','WZ03709'], isAdmin: true, isImpersonated: true, allClientIds: ['WZ01112','WZ03709'], isAdmin: true, isImpersonated: true,
originalUserEmail: 'real@t.ru', impersonatedCompanyId: 'WZ03709', profiles: [] originalUserEmail: 'real@t.ru', impersonatedCompanyId: 'WZ03709', profiles: []
}, adminMode: true }, { 'v2_email': 'real@t.ru', 'v2_clientId': 'WZ03709', 'v2_isImpersonated': true, 'v2_impersonatedBy': 'admin@t.ru' }); }, adminMode: true }, { 'email': 'real@t.ru', 'clientId': 'WZ03709', 'isImpersonated': true, 'impersonatedBy': 'admin@t.ru' });
t('имперс. без origEmail', { user: { t('имперс. без origEmail', { user: {
email: 'x@t.ru', clientId: 'WZ01112', activeClientId: 'WZ01112', email: 'x@t.ru', clientId: 'WZ01112', activeClientId: 'WZ01112',
allClientIds: ['WZ01112'], isAdmin: true, isImpersonated: true, allClientIds: ['WZ01112'], isAdmin: true, isImpersonated: true,
originalUserEmail: '', impersonatedCompanyId: '', profiles: [] originalUserEmail: '', impersonatedCompanyId: '', profiles: []
} }, { 'v2_email': 'x@t.ru', 'v2_clientId': 'WZ01112', 'v2_impersonatedBy': 'x@t.ru' }); } }, { 'email': 'x@t.ru', 'clientId': 'WZ01112', 'impersonatedBy': 'x@t.ru' });
t('без activeClientId', { user: { t('без activeClientId', { user: {
email: 'y@t.ru', clientId: 'WZ03709', allClientIds: ['WZ03709'], email: 'y@t.ru', clientId: 'WZ03709', allClientIds: ['WZ03709'],
isAdmin: false, profiles: [] isAdmin: false, profiles: []
} }, { 'v2_email': 'y@t.ru', 'v2_clientId': 'WZ03709' }); } }, { 'email': 'y@t.ru', 'clientId': 'WZ03709' });
console.log(`\n${passed} passed, ${failed} failed`); console.log(`\n${passed} passed, ${failed} failed`);
if (failed) process.exit(1); if (failed) process.exit(1);