v0.5.4: fix multi-company API — client_id validation, export isolation, 121 tests PASS
This commit is contained in:
@@ -49,9 +49,16 @@ function createEntriesRouter({ q }) {
|
||||
if (!c) throw Object.assign(new Error('Company not found'), { status: 404 });
|
||||
return c;
|
||||
}
|
||||
// Мульти-компания: если передан client_id — использовать его
|
||||
const effectiveClientId = req.query.client_id || req.user.clientId;
|
||||
return q.getOrCreateCompany(effectiveClientId, req.user.companyName);
|
||||
// Мульти-компания: client_id разрешён только если есть в allClientIds пользователя
|
||||
const requestedId = (req.query.client_id || '').trim();
|
||||
const effectiveClientId = (requestedId && req.user.allClientIds && req.user.allClientIds.includes(requestedId))
|
||||
? requestedId
|
||||
: req.user.clientId;
|
||||
// companyName: для переключённой компании — clientId как имя по умолчанию
|
||||
const effectiveName = effectiveClientId === req.user.clientId
|
||||
? req.user.companyName
|
||||
: effectiveClientId;
|
||||
return q.getOrCreateCompany(effectiveClientId, effectiveName);
|
||||
}
|
||||
|
||||
// GET /api/v1/entries — список записей + лимит
|
||||
@@ -75,8 +82,11 @@ function createEntriesRouter({ q }) {
|
||||
try {
|
||||
let companyId = null;
|
||||
if (!req.user.isAdmin) {
|
||||
const effectiveClientId = req.query.client_id || req.user.clientId;
|
||||
const company = await q.getOrCreateCompany(effectiveClientId, req.user.companyName);
|
||||
const requestedId = (req.query.client_id || '').trim();
|
||||
const effectiveClientId = (requestedId && req.user.allClientIds && req.user.allClientIds.includes(requestedId))
|
||||
? requestedId
|
||||
: req.user.clientId;
|
||||
const company = await q.getOrCreateCompany(effectiveClientId, effectiveClientId);
|
||||
companyId = company.id;
|
||||
} else if (req.query.company) {
|
||||
const id = parseInt(req.query.company, 10);
|
||||
|
||||
Reference in New Issue
Block a user