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.
This commit is contained in:
@@ -73,8 +73,8 @@ export function RolesPermisos() {
|
|||||||
const estado: Record<string, RolEstado> = {}
|
const estado: Record<string, RolEstado> = {}
|
||||||
for (const r of data) {
|
for (const r of data) {
|
||||||
estado[r.rol] = {
|
estado[r.rol] = {
|
||||||
modulos: JSON.parse(r.modulos) as string[],
|
modulos: Array.isArray(r.modulos) ? (r.modulos as string[]) : JSON.parse(r.modulos as string) as string[],
|
||||||
acciones: JSON.parse(r.acciones) as Record<string, boolean>,
|
acciones: r.acciones && typeof r.acciones === 'object' ? (r.acciones as Record<string, boolean>) : JSON.parse(r.acciones as string) as Record<string, boolean>,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setEdicion(estado)
|
setEdicion(estado)
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ export async function patchConfigSistema(data: Record<string, string>): Promise<
|
|||||||
|
|
||||||
export interface RolConfig {
|
export interface RolConfig {
|
||||||
rol: string
|
rol: string
|
||||||
modulos: string // JSON array string
|
modulos: string[] | string
|
||||||
acciones: string // JSON object string
|
acciones: Record<string, boolean> | string
|
||||||
}
|
}
|
||||||
|
|
||||||
/** GET /config/roles — todas las configuraciones de rol */
|
/** GET /config/roles — todas las configuraciones de rol */
|
||||||
|
|||||||
Reference in New Issue
Block a user