v0.6.9: защита от пустого clientId (null client_id)

This commit is contained in:
2026-06-15 10:35:03 +04:00
parent 3d3354c49e
commit 00d3928a50
5 changed files with 84 additions and 2 deletions
+1 -1
View File
@@ -9,7 +9,7 @@
// ═══════════════════════════════════════════════════════════════════════════════
module.exports = {
version: '0.6.8',
version: '0.6.9',
// ── IAM ──────────────────────────────────────────────────────────────────
iamUrl: process.env.V2_IAM_URL || 'https://auth-api.ngcloud.ru/api/v1/auth/user',
+1
View File
@@ -31,6 +31,7 @@ const { validate } = require('../validators');
// Возвращает { id, client_id, name, custom_limit }.
// Вызывается из list/add/edit/remove перед каждой операцией.
async function resolve(clientId) {
if (!clientId || !clientId.trim()) throw new Error('Ошибка: не определён clientId (W-номер компании). Обратитесь к администратору.');
return q.getOrCreateCompany(clientId, clientId);
}
+1
View File
@@ -42,6 +42,7 @@ function resolveContext(req, res, next) {
// ВЕЗДЕ: created_by, экран, формы
req.email = u.email || '';
req.clientId = isImpersonated ? u.impersonatedCompanyId : (u.activeClientId || u.clientId || '');
if (!req.clientId) return res.status(400).send('<h2>Ошибка</h2><p>Не удалось определить W-номер компании. Проверьте настройки IAM.</p><p><a href="/logout">Выйти</a></p>');
req.companyName = u.companyName || req.clientId;
req.isAdmin = !!(u.isAdmin && u.adminMode) || (ADMIN_EMAIL && u.email === ADMIN_EMAIL);
req.isImpersonated = isImpersonated;