fix: canAdminMode по email ntazetdinov@nubes.ru вместо isAdmin

- ui/index.js: email берётся из сессии (IAM/Keycloak)
- canAdminMode: (isAdmin AND WZ01112) OR (ntazetdinov@nubes.ru AND WZ01112)
- Временно для тестов, убрать после настройки IAM isAdmin
This commit is contained in:
2026-06-11 13:41:35 +04:00
parent 13466ebd37
commit 4af34616f9
2 changed files with 8 additions and 4 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "ipwhitelist",
"version": "0.5.41",
"version": "0.5.42",
"description": "IP WhiteList microservice for cloud provider",
"main": "server.js",
"scripts": {
+7 -3
View File
@@ -58,18 +58,22 @@ function createUiRouter({ auth, MOCK_USERS, authLimiter }) {
? sessionActive
: (allClientIds[0] || rawClientId);
// Email из сессии (IAM или Keycloak) или из JWT
const sessionEmail = req.session && req.session.user && req.session.user.email;
const email = sessionEmail || payload.email || payload.login || activeClientId + '@unknown';
// 🔮 isAdmin через IAM
const iamAdmin = req.session && req.session.user && req.session.user.isAdmin;
// ВРЕМЕННО: WZ01112 без isAdmin тоже видит toggle (для тестов)
// ВРЕМЕННО: ntazetdinov@nubes.ru без isAdmin тоже видит toggle (для тестов)
const canAdminMode = !!(iamAdmin && activeClientId === ADMIN_CLIENT_ID)
|| activeClientId === ADMIN_CLIENT_ID; // ← убрать после тестов
|| (email === 'ntazetdinov@nubes.ru' && activeClientId === ADMIN_CLIENT_ID); // ← убрать после тестов
req.user = {
clientId: rawClientId,
allClientIds,
activeClientId,
companyId: payload.company_id || payload.companyId || null,
companyName: payload.company_name || payload.companyName || activeClientId,
email: payload.email || activeClientId + '@unknown',
email,
isAdmin: iamAdmin,
canAdminMode,
adminMode: !!(req.session && req.session.adminMode),