v2: убран v2_ префикс из req.* — роутер и модули согласованы
This commit is contained in:
+1
-1
@@ -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": {
|
||||||
|
|||||||
@@ -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',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user