Fix: Update INTERNAL_API_URL to match compose service name, and fix KNOWN_SITES filtering for all agents
This commit is contained in:
1 parent
68c176f972
commit
b34ea00bcd
4 files changed
+45
-68
No files matched your search
@@ -37,8 +37,16 @@ router.get('/agents/uptime', async (req, res) => {
|
||||
|
||||
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all' && isKnownSite(requestedSiteUuid)) {
|
||||
query.site_uuid = { $in: [requestedSiteUuid, 'global'] };
|
||||
} else if (!isGlobalUser && req.user?.site_uuid) {
|
||||
query.site_uuid = { $in: [req.user.site_uuid, 'global'] };
|
||||
} else if (isGlobalUser && process.env.BACKONE_SITE_UUIDS) {
|
||||
const envSites = process.env.BACKONE_SITE_UUIDS.split(',').map(s => s.trim()).filter(Boolean);
|
||||
if (envSites.length > 0) query.site_uuid = { $in: [...envSites, 'global'] };
|
||||
} else if (!isGlobalUser) {
|
||||
const envSites = (process.env.BACKONE_SITE_UUIDS || '').split(',').map(s => s.trim()).filter(Boolean);
|
||||
if (envSites.length > 0) {
|
||||
query.site_uuid = { $in: [...envSites, req.user?.site_uuid, 'global'].filter(Boolean) };
|
||||
} else if (req.user?.site_uuid) {
|
||||
query.site_uuid = { $in: [req.user.site_uuid, 'global'] };
|
||||
}
|
||||
}
|
||||
|
||||
const stats = await Summary.aggregate([
|
||||
@@ -82,8 +90,16 @@ router.get('/agents', async (req, res) => {
|
||||
|
||||
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all' && isKnownSite(requestedSiteUuid)) {
|
||||
query.site_uuid = { $in: [requestedSiteUuid, 'global'] };
|
||||
} else if (isGlobalUser && process.env.BACKONE_SITE_UUIDS) {
|
||||
const envSites = process.env.BACKONE_SITE_UUIDS.split(',').map(s => s.trim()).filter(Boolean);
|
||||
if (envSites.length > 0) query.site_uuid = { $in: [...envSites, 'global'] };
|
||||
} else if (effectiveRole === 'TENANT_ADMIN') {
|
||||
query.site_uuid = { $in: [req.user.site_uuid, 'global'] };
|
||||
const envSites = (process.env.BACKONE_SITE_UUIDS || '').split(',').map(s => s.trim()).filter(Boolean);
|
||||
if (envSites.length > 0) {
|
||||
query.site_uuid = { $in: [...envSites, req.user.site_uuid, 'global'].filter(Boolean) };
|
||||
} else {
|
||||
query.site_uuid = { $in: [req.user.site_uuid, 'global'] };
|
||||
}
|
||||
}
|
||||
|
||||
const agents = await Summary.distinct('agent_uuid', query);
|
||||
@@ -183,8 +199,16 @@ router.get('/agents/list', async (req, res) => {
|
||||
|
||||
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all' && isKnownSite(requestedSiteUuid)) {
|
||||
filter.site_uuid = { $in: [requestedSiteUuid, 'global'] };
|
||||
} else if (user?.site_uuid) {
|
||||
filter.site_uuid = { $in: [user.site_uuid, 'global'] };
|
||||
} else if (isGlobalUser && process.env.BACKONE_SITE_UUIDS) {
|
||||
const envSites = process.env.BACKONE_SITE_UUIDS.split(',').map(s => s.trim()).filter(Boolean);
|
||||
if (envSites.length > 0) filter.site_uuid = { $in: [...envSites, 'global'] };
|
||||
} else if (!isGlobalUser) {
|
||||
const envSites = (process.env.BACKONE_SITE_UUIDS || '').split(',').map(s => s.trim()).filter(Boolean);
|
||||
if (envSites.length > 0) {
|
||||
filter.site_uuid = { $in: [...envSites, user?.site_uuid, 'global'].filter(Boolean) };
|
||||
} else if (user?.site_uuid) {
|
||||
filter.site_uuid = { $in: [user.site_uuid, 'global'] };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -55,8 +55,18 @@ function getBaseFilter(req, timeFilter = null) {
|
||||
|
||||
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all' && isKnownSite(requestedSiteUuid)) {
|
||||
filter.site_uuid = { $in: [requestedSiteUuid, 'global'] };
|
||||
} else if (!isGlobalUser && req.user?.site_uuid) {
|
||||
filter.site_uuid = { $in: [req.user.site_uuid, 'global'] };
|
||||
} else if (isGlobalUser && KNOWN_SITES.length > 0) {
|
||||
// Global user requesting 'all' - restrict to environment known sites if defined
|
||||
filter.site_uuid = { $in: [...KNOWN_SITES, 'global'] };
|
||||
} else if (!isGlobalUser) {
|
||||
// Non-global user: use their assigned site, BUT if KNOWN_SITES is defined in env,
|
||||
// ensure we prioritize or include the environment's sites so they don't get locked out by old DB data.
|
||||
const userSite = req.user?.site_uuid;
|
||||
if (KNOWN_SITES.length > 0) {
|
||||
filter.site_uuid = { $in: [...KNOWN_SITES, userSite, 'global'].filter(Boolean) };
|
||||
} else if (userSite) {
|
||||
filter.site_uuid = { $in: [userSite, 'global'] };
|
||||
}
|
||||
}
|
||||
|
||||
// Restrict agent based on role and explicit query
|
||||
@@ -73,6 +83,8 @@ function getBaseFilter(req, timeFilter = null) {
|
||||
// SUPER_ADMIN and other global roles can query any agent
|
||||
filter.agent_uuid = req.query.agent_uuid;
|
||||
}
|
||||
|
||||
console.log('[DEBUG getBaseFilter]', { headers: req.headers, filter });
|
||||
return filter;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user