feat: adminMode — чек-бокс переключения админского интерфейса
Шаг 1: /toggle-admin роут в ui/routes/auth.js - переключает req.session.adminMode - canAdmin = isAdmin || clientId === WZ01112 (временно) Шаг 2: resolveUser в ui/index.js - req.user.adminMode из req.session.adminMode - isAdmin = IAM.isAdmin || clientId === WZ01112 (временно) Шаг 3: adminMode вместо isAdmin в интерфейсе - ui/routes/entries.js: adminMode решает админский view - ui/routes/admin.js: requireAdmin проверяет adminMode Шаг 4: views/index.ejs - чек-бокс «Администратор» (виден только если isAdmin) - ссылки Аудит/Лимиты видны только при adminMode - селектор компаний — при adminMode
This commit is contained in:
+4
-1
@@ -58,6 +58,8 @@ function createUiRouter({ auth, MOCK_USERS, authLimiter }) {
|
||||
? sessionActive
|
||||
: (allClientIds[0] || rawClientId);
|
||||
|
||||
// 🔮 isAdmin через IAM, временно: || clientId === WZ01112
|
||||
const iamAdmin = req.session && req.session.user && req.session.user.isAdmin;
|
||||
req.user = {
|
||||
clientId: rawClientId,
|
||||
allClientIds,
|
||||
@@ -65,7 +67,8 @@ function createUiRouter({ auth, MOCK_USERS, authLimiter }) {
|
||||
companyId: payload.company_id || payload.companyId || null,
|
||||
companyName: payload.company_name || payload.companyName || activeClientId,
|
||||
email: payload.email || activeClientId + '@unknown',
|
||||
isAdmin: activeClientId === ADMIN_CLIENT_ID,
|
||||
isAdmin: iamAdmin || activeClientId === ADMIN_CLIENT_ID,
|
||||
adminMode: !!(req.session && req.session.adminMode),
|
||||
};
|
||||
} catch (e) {
|
||||
req.session.destroy(() =>
|
||||
|
||||
Reference in New Issue
Block a user