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", "name": "ipwhitelist",
"version": "0.5.41", "version": "0.5.42",
"description": "IP WhiteList microservice for cloud provider", "description": "IP WhiteList microservice for cloud provider",
"main": "server.js", "main": "server.js",
"scripts": { "scripts": {
+7 -3
View File
@@ -58,18 +58,22 @@ function createUiRouter({ auth, MOCK_USERS, authLimiter }) {
? sessionActive ? sessionActive
: (allClientIds[0] || rawClientId); : (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 // 🔮 isAdmin через IAM
const iamAdmin = req.session && req.session.user && req.session.user.isAdmin; 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) const canAdminMode = !!(iamAdmin && activeClientId === ADMIN_CLIENT_ID)
|| activeClientId === ADMIN_CLIENT_ID; // ← убрать после тестов || (email === 'ntazetdinov@nubes.ru' && activeClientId === ADMIN_CLIENT_ID); // ← убрать после тестов
req.user = { req.user = {
clientId: rawClientId, clientId: rawClientId,
allClientIds, allClientIds,
activeClientId, activeClientId,
companyId: payload.company_id || payload.companyId || null, companyId: payload.company_id || payload.companyId || null,
companyName: payload.company_name || payload.companyName || activeClientId, companyName: payload.company_name || payload.companyName || activeClientId,
email: payload.email || activeClientId + '@unknown', email,
isAdmin: iamAdmin, isAdmin: iamAdmin,
canAdminMode, canAdminMode,
adminMode: !!(req.session && req.session.adminMode), adminMode: !!(req.session && req.session.adminMode),