From 52429c9f14bbaef8fb1ac297005771c4ba6f130b Mon Sep 17 00:00:00 2001 From: Consult AS Technology Date: Tue, 8 Sep 2026 08:21:23 +0000 Subject: [PATCH] fix(mi-dia): admin/director ven todos los leads y oportunidades - esMio: admin/director_ventas/direccion_general ven todo - Controller: admin carga todas las capturas y clientes (no solo las suyas) - Admin ahora ve 123 leads + 8 ops + 5 apartados --- api-gateway/src/controllers/mi-dia.controller.ts | 9 +++++---- api-gateway/src/services/mi-dia.service.ts | 2 ++ 2 files changed, 7 insertions(+), 4 deletions(-) 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)