diff --git a/api/models/Agent.js b/api/models/Agent.js index cffced3e95..6b09745eb9 100644 --- a/api/models/Agent.js +++ b/api/models/Agent.js @@ -71,14 +71,13 @@ const deleteAgent = async (searchParameter) => { const getListAgents = async (searchParameter) => { const { author, ...otherParams } = searchParameter; - let query = { - $or: [{ author }, { projectIds: { $exists: true, $ne: [], $not: { $size: 0 } } }], - ...otherParams, - }; + let query = Object.assign({ author }, otherParams); - const globalProject = await getProjectByName(GLOBAL_PROJECT_NAME, 'agentIds'); - if (globalProject && globalProject.agentIds.length > 0) { - query.$or.push({ _id: { $in: globalProject.agentIds } }); + const globalProject = await getProjectByName(GLOBAL_PROJECT_NAME, ['agentIds']); + if (globalProject && (globalProject.agentIds?.length ?? 0) > 0) { + const globalQuery = { id: { $in: globalProject.agentIds }, ...otherParams }; + delete globalQuery.author; + query = { $or: [globalQuery, query] }; } const agents = await Agent.find(query, { diff --git a/api/server/controllers/agents/v1.js b/api/server/controllers/agents/v1.js index d1c2a91241..e009b9ff9b 100644 --- a/api/server/controllers/agents/v1.js +++ b/api/server/controllers/agents/v1.js @@ -131,9 +131,9 @@ const deleteAgentHandler = async (req, res) => { */ const getListAgentsHandler = async (req, res) => { try { - const { user } = req.query; - const filter = user ? { author: user } : {}; - const data = await getListAgents(filter); + const data = await getListAgents({ + author: req.user.id, + }); return res.json(data); } catch (error) { logger.error('[/Agents] Error listing Agents', error);