v0.5.121: switchTo после crud.list, без save() и без impersonationCompanyId
This commit is contained in:
+15
-16
@@ -28,22 +28,6 @@ function createUserRouter() {
|
||||
const isAdmin = req.canAdmin;
|
||||
const clId = req.clientId;
|
||||
|
||||
// ── Переключение компании ──────────────────────────────────────
|
||||
if (req.query.switchTo) {
|
||||
const targetId = req.query.switchTo;
|
||||
if (isAdmin) {
|
||||
req.session.user.activeClientId = targetId;
|
||||
if (req.session.user.isImpersonated) req.session.user.impersonatedCompanyId = targetId;
|
||||
return res.redirect('/v2/app');
|
||||
} else {
|
||||
const allowed = (req.profiles || []).find(p => p.client_id === targetId);
|
||||
if (allowed) {
|
||||
req.session.user.activeClientId = targetId;
|
||||
return res.redirect('/v2/app');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ── Компании для dropdown ───────────────────────────────────────
|
||||
let companies;
|
||||
if (isAdmin) {
|
||||
@@ -69,6 +53,21 @@ function createUserRouter() {
|
||||
const includeDeleted = req.query.deleted === '1';
|
||||
const { entries, used, limit } = await crud.list(clId, includeDeleted);
|
||||
|
||||
// ── Переключение компании ──────────────────────────────────────
|
||||
if (req.query.switchTo) {
|
||||
const targetId = req.query.switchTo;
|
||||
if (isAdmin) {
|
||||
req.session.user.activeClientId = targetId;
|
||||
return res.redirect('/v2/app');
|
||||
} else {
|
||||
const allowed = (req.profiles || []).find(p => p.client_id === targetId);
|
||||
if (allowed) {
|
||||
req.session.user.activeClientId = targetId;
|
||||
return res.redirect('/v2/app');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ── Данные пользователя для шаблона ────────────────────────────
|
||||
const sessionUser = req.session && req.session.user ? req.session.user : {};
|
||||
const templateUser = {
|
||||
|
||||
Reference in New Issue
Block a user