From 487cd6f578c422d5ee03b454a56865cddcade655 Mon Sep 17 00:00:00 2001 From: Consult AS Technology Date: Sun, 6 Sep 2026 18:57:10 +0000 Subject: [PATCH] fix(config):RolesPermisos maneja modulos/acciones ya parseados por el API El controller de config/roles ya devuelve modulos (array) y acciones (objeto) parseados, pero el frontend intentaba JSON.parse() otra vez sobre algo que no era string. Ahora verifica el tipo antes de parsear. --- apps/landing/src/components/config/RolesPermisos.tsx | 4 ++-- apps/landing/src/services/config.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/landing/src/components/config/RolesPermisos.tsx b/apps/landing/src/components/config/RolesPermisos.tsx index 61a8a3f..15382e3 100644 --- a/apps/landing/src/components/config/RolesPermisos.tsx +++ b/apps/landing/src/components/config/RolesPermisos.tsx @@ -73,8 +73,8 @@ export function RolesPermisos() { const estado: Record = {} for (const r of data) { estado[r.rol] = { - modulos: JSON.parse(r.modulos) as string[], - acciones: JSON.parse(r.acciones) as Record, + modulos: Array.isArray(r.modulos) ? (r.modulos as string[]) : JSON.parse(r.modulos as string) as string[], + acciones: r.acciones && typeof r.acciones === 'object' ? (r.acciones as Record) : JSON.parse(r.acciones as string) as Record, } } setEdicion(estado) diff --git a/apps/landing/src/services/config.ts b/apps/landing/src/services/config.ts index 48d90e6..714da2d 100644 --- a/apps/landing/src/services/config.ts +++ b/apps/landing/src/services/config.ts @@ -32,8 +32,8 @@ export async function patchConfigSistema(data: Record): Promise< export interface RolConfig { rol: string - modulos: string // JSON array string - acciones: string // JSON object string + modulos: string[] | string + acciones: Record | string } /** GET /config/roles — todas las configuraciones de rol */