diff --git a/api-gateway/src/controllers/mi-dia.controller.ts b/api-gateway/src/controllers/mi-dia.controller.ts index 7ec92e4..8d56851 100644 --- a/api-gateway/src/controllers/mi-dia.controller.ts +++ b/api-gateway/src/controllers/mi-dia.controller.ts @@ -43,9 +43,10 @@ export async function resumenMiDiaEndpoint(req: Request, res: Response): Promise console.error('No se pudieron listar los usuarios del workspace de Monday:', err) } - // Capturas de afluencia registradas por el usuario (registro local) + // Capturas de afluencia: admin ve todas, otros solo las suyas + const esAdmin = usuario.rol === 'admin' || usuario.rol === 'direccion_general' || usuario.rol === 'director_ventas' const capturas = await prisma.leadCaptura.findMany({ - where: { usuarioId: usuario.id }, + where: esAdmin ? {} : { usuarioId: usuario.id }, orderBy: { createdAt: 'desc' }, }) @@ -60,9 +61,9 @@ export async function resumenMiDiaEndpoint(req: Request, res: Response): Promise ...mappings.map((m) => m.oportunidadId), ]) - // Altas de clientes iniciadas por el usuario (registro local) + // Altas de clientes: admin ve todas, otros solo las suyas const clientes = await prisma.cliente.findMany({ - where: { capturadoPorId: usuario.id }, + where: esAdmin ? {} : { capturadoPorId: usuario.id }, orderBy: { createdAt: 'desc' }, }) diff --git a/api-gateway/src/services/mi-dia.service.ts b/api-gateway/src/services/mi-dia.service.ts index 9459afc..b01f155 100644 --- a/api-gateway/src/services/mi-dia.service.ts +++ b/api-gateway/src/services/mi-dia.service.ts @@ -230,7 +230,9 @@ export async function resumenMiDia( // personas: solo cuenta la captura local. Funciona SIN vĂ­nculo Monday. const idsCapturados = capturadosIds ?? new Set(capturas.map((c) => c.leadId)) const esCompartido = miId !== null && compartidoId !== null && compartidoId > 0 && miId === compartidoId + const esAdmin = usuario.rol === 'admin' || usuario.rol === 'direccion_general' || usuario.rol === 'director_ventas' const esMio = (peopleIds: number[], itemId: string): boolean => { + if (esAdmin) return true if (idsCapturados.has(itemId)) return true if (esCompartido || miId === null) return false return peopleIds.includes(miId)