Fix: Prevent backend from returning empty data when site_uuid is all
This commit is contained in:
1 parent
350234d379
commit
cd93a40104
4 files changed
+25
-14
No files matched your search
@@ -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);
|
||||
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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'] };
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user