Fix: Prevent backend from returning empty data when site_uuid is all

This commit is contained in:
ypratama committed 2026-09-01 09:40:51 +07:00
1 parent 350234d379
commit cd93a40104
4 files changed
+24 -13

No files matched your search

+9 -3
View File
@@ -111,11 +111,17 @@ router.get('/agent-flows', async (req, res) => {
try {
const requestedSiteUuid = req.headers['x-backone-site-uuid'];
const isGlobalUser = req.user?.role === 'SUPER_ADMIN' ||
req.user?.role === 'EXECUTIVE' ||
((!req.user?.site_uuid || req.user?.site_uuid === 'default') && ['SOC_ANALYST', 'ENGINEER'].includes(req.user?.role));
const siteUuid = (isGlobalUser && requestedSiteUuid)
? requestedSiteUuid
: (req.user?.site_uuid || '6681452d_9cae_4ff4_8ae8_0d504774265e');
let siteUuid = null;
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all') {
siteUuid = requestedSiteUuid;
} else if (!isGlobalUser && req.user?.site_uuid) {
siteUuid = req.user.site_uuid;
} else {
siteUuid = '6681452d_9cae_4ff4_8ae8_0d504774265e';
}
const timeFilter = getTimeFilter(req);
+12 -6
View File
@@ -35,9 +35,9 @@ router.get('/agents/uptime', async (req, res) => {
req.user?.role === 'EXECUTIVE' ||
((!req.user?.site_uuid || req.user?.site_uuid === 'default') && ['SOC_ANALYST', 'ENGINEER'].includes(req.user?.role));
if (isGlobalUser && requestedSiteUuid) {
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all') {
query.site_uuid = { $in: [requestedSiteUuid, 'global'] };
} else if (req.user?.site_uuid) {
} else if (!isGlobalUser && req.user?.site_uuid) {
query.site_uuid = { $in: [req.user.site_uuid, 'global'] };
}
@@ -117,9 +117,9 @@ router.get('/agents/storage', async (req, res) => {
((!req.user?.site_uuid || req.user?.site_uuid === 'default') && ['SOC_ANALYST', 'ENGINEER'].includes(req.user?.role));
let siteUuid = null;
if (isGlobalUser && requestedSiteUuid) {
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all') {
siteUuid = requestedSiteUuid;
} else if (req.user?.site_uuid) {
} else if (!isGlobalUser && req.user?.site_uuid) {
siteUuid = req.user.site_uuid;
}
@@ -178,8 +178,14 @@ router.get('/agents/list', async (req, res) => {
} else {
// Admin/SUPER_ADMIN: filter berdasarkan site UUID dari header
const requestedSiteUuid = req.headers['x-backone-site-uuid'];
if (requestedSiteUuid) filter.site_uuid = { $in: [requestedSiteUuid, 'global'] };
else if (user?.site_uuid) filter.site_uuid = { $in: [user.site_uuid, 'global'] };
const effectiveRole = user?._originalRole || user?.role;
const isGlobalUser = effectiveRole === 'SUPER_ADMIN' || effectiveRole === 'EXECUTIVE';
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all') {
filter.site_uuid = { $in: [requestedSiteUuid, 'global'] };
} else if (user?.site_uuid) {
filter.site_uuid = { $in: [user.site_uuid, 'global'] };
}
}
const agents = await db.collection('agent_registry')
+2 -2
View File
@@ -40,9 +40,9 @@ function getBaseFilter(req, timeFilter = null) {
req.user?.role === 'EXECUTIVE' ||
((!req.user?.site_uuid || req.user?.site_uuid === 'default') && ['SOC_ANALYST', 'ENGINEER'].includes(req.user?.role));
if (isGlobalUser && requestedSiteUuid) {
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all') {
filter.site_uuid = { $in: [requestedSiteUuid, 'global'] };
} else if (req.user?.site_uuid) {
} else if (!isGlobalUser && req.user?.site_uuid) {
filter.site_uuid = { $in: [req.user.site_uuid, 'global'] };
}
+1 -2
View File
@@ -14,11 +14,10 @@ router.get('/tenant-config', async (req, res) => {
if (isGlobalUser) {
const requestedSiteUuid = req.headers['x-backone-site-uuid'];
if (requestedSiteUuid) {
if (requestedSiteUuid && requestedSiteUuid !== 'all') {
siteUuid = requestedSiteUuid;
}
} else if (req.user?.site_uuid) {
// For TENANT_ADMIN or other isolated roles, they only see their own site branding
siteUuid = req.user.site_uuid;
}