v0.5.102: единый интерфейс /v2/app для юзеров и админов

This commit is contained in:
2026-06-15 13:30:12 +04:00
parent 2f151f4cdf
commit a31b3e61f2
6 changed files with 371 additions and 93 deletions
+3 -5
View File
@@ -28,7 +28,6 @@ const auth = require('./src/auth');
const { resolveContext } = require('./src/router');
const { enhanceImpersonation } = require('./src/impersonation');
const { createUserRouter } = require('./src/user');
const { createAdminRouter } = require('./src/admin');
const { pool } = require('./src/db');
const { ensureSchema } = require('./src/db/schema');
@@ -53,8 +52,8 @@ function createV2Router() {
// ── /v2/app — пользовательский CRUD (только с сессией) ──────────────
router.use('/app', enhanceImpersonation, resolveContext, createUserRouter());
// ── /v2/admin — админка (только для isAdmin=true) ────────────────────
router.use('/admin', enhanceImpersonation, resolveContext, createAdminRouter());
// ── /v2/admin — редирект на единый интерфейс ───────────────────
router.get('/admin', (req, res) => res.redirect('/v2/app'));
// ── POST /v2/toggle-admin — переключить режим администратора ────
router.post('/toggle-admin', (req, res) => {
@@ -63,10 +62,9 @@ function createV2Router() {
const canAdmin = (u.allClientIds || []).includes('WZ01112') || u.clientId === 'WZ01112' || !!u.isAdmin;
if (!canAdmin) return res.redirect('/v2/app');
u.adminMode = !u.adminMode;
const target = u.adminMode ? '/v2/admin' : '/v2/app';
req.session.save(err => {
if (err) console.error('[toggle-admin] session save error:', err.message);
res.redirect(target);
res.redirect('/v2/app');
});
});