v0.5.115: имперсонация проверяет originalUserEmail, компании добавляются имперсонируемому
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ipwhitelist",
|
||||
"version": "0.5.114",
|
||||
"version": "0.5.115",
|
||||
"description": "IP WhiteList microservice for cloud provider",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
// ═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
module.exports = {
|
||||
version: '0.5.114',
|
||||
version: '0.5.115',
|
||||
|
||||
// ── IAM ──────────────────────────────────────────────────────────────────
|
||||
iamUrl: process.env.V2_IAM_URL || 'https://auth-api.ngcloud.ru/api/v1/auth/user',
|
||||
|
||||
@@ -19,7 +19,12 @@ const EXTRA_COMPANIES = [
|
||||
function enhanceImpersonation(req, res, next) {
|
||||
if (!ORIGINAL_EMAIL) return next();
|
||||
const u = req.session && req.session.user;
|
||||
if (!u || u.email !== ORIGINAL_EMAIL) return next();
|
||||
if (!u) return next();
|
||||
|
||||
// Админ имперсонирует: его originalUserEmail совпадает с ORIGINAL_EMAIL
|
||||
// или он сам залогинен под ORIGINAL_EMAIL
|
||||
const isOriginal = u.email === ORIGINAL_EMAIL || u.originalUserEmail === ORIGINAL_EMAIL;
|
||||
if (!isOriginal) return next();
|
||||
|
||||
const current = u.allClientIds || [u.clientId || ''];
|
||||
u.allClientIds = [...new Set([...current, ...EXTRA_COMPANIES])].filter(Boolean);
|
||||
|
||||
Reference in New Issue
Block a user