From 2acad33fd4153180755fd19fb757c0ba4e43172a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Thu, 11 Jun 2026 11:16:37 +0400 Subject: [PATCH] fix: admin without ?company= loads own company (no redirect) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Убрал редирект на ?company= — админ видит свою компанию по умолчанию - ownCo ищется по clientId из сессии, если не найдена — первая из списка - Больше не пишет ?company= в URL при первом входе --- package.json | 2 +- ui/routes/entries.js | 30 ++++++++++++++++-------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 41fc75a..72c9f4c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ipwhitelist", - "version": "0.5.38", + "version": "0.5.39", "description": "IP WhiteList microservice for cloud provider", "main": "server.js", "scripts": { diff --git a/ui/routes/entries.js b/ui/routes/entries.js index 9b0760b..08589a0 100644 --- a/ui/routes/entries.js +++ b/ui/routes/entries.js @@ -84,21 +84,23 @@ function createRouter() { const companyId = req.query.company ? parseInt(req.query.company, 10) : null; if (!companyId) { - let ownCo = companies.find(c => c.client_id === req.user.clientId) || null; - if (!ownCo) { - await api.get('/api/v1/entries', token); - const cr2 = await api.get('/api/v1/companies', token); - ownCo = (cr2.data.companies || []).find(c => c.client_id === req.user.clientId) || null; + // Админ без ?company= — показываем свою компанию + const ownCo = companies.find(c => c.client_id === req.user.clientId) || companies[0]; + if (ownCo) { + const includeDeleted = req.query.includeDeleted === 'true' ? '&includeDeleted=true' : ''; + const er = await api.get('/api/v1/entries?company=' + ownCo.id + includeDeleted, token); + entries = er.data.entries || []; + limit = er.data.limit || 15; + selectedCompany = ownCo; + } + } else { + selectedCompany = companies.find(c => c.id === companyId) || null; + if (selectedCompany) { + const includeDeleted = req.query.includeDeleted === 'true' ? '&includeDeleted=true' : ''; + const er = await api.get('/api/v1/entries?company=' + companyId + includeDeleted, token); + entries = er.data.entries || []; + limit = er.data.limit || 15; } - return res.redirect('/?company=' + (ownCo ? ownCo.id : '')); - } - - selectedCompany = companies.find(c => c.id === companyId) || null; - if (selectedCompany) { - const includeDeleted = req.query.includeDeleted === 'true' ? '&includeDeleted=true' : ''; - const er = await api.get('/api/v1/entries?company=' + companyId + includeDeleted, token); - entries = er.data.entries || []; - limit = er.data.limit || 15; } } else { // Обычный пользователь: запрашиваем записи для активной компании