Módulos de permiso
Requisitos de acceso
- Permiso (módulo):
manageRoles(igual que el grupo Usuarios; la ruta/users/modulesno tiene ítem propio en el menú) - Licencia/Feature: Ninguna
- Contenedor del menú: GENERAL → grupo Usuarios (ruta interna, sin ítem de menú dedicado — accesible mediante enlace interno)
Qué es / cuándo usar
Catálogo de los módulos de permiso del sistema de permisos dinámico — la mitad "BD" del modelo de permiso doble. Cada fila es un módulo (p. ej.: viewUsers, manageToken, sendBalance) con una descripción legible. Este catálogo alimenta las cajas "Disponibles/Asignados" de la pantalla de Funciones y el gating *appHasPermission de la UI. Úselo principalmente para revisar los módulos existentes y ajustar sus descripciones.
La ruta es /users/modules (ModulesListComponent); no aparece como ítem en el menú lateral — es una configuración interna del sistema de permisos.
Precondiciones
- Permiso:
manageRoles(igual que el grupo Usuarios). Permiso doble: enum CPM + módulo dinámico. - Licencia/Feature: ninguna.
- Dependencias: los módulos aquí deben tener correspondencia en el enum estático
E_PERMISSION_MODULES(backend + copia en el frontend) para que el decorador@AuthenticationRequired(...)valide la ruta. Un módulo solo en el catálogo (sin enum) habilita el*ngIf/botón en la UI, pero la ruta es rechazada en el backend; un módulo solo en el enum (sin catálogo) nunca aparece en la UI.
Paso a paso
- Acceda a la ruta interna
/users/modules(desde enlaces internos del grupo Usuarios). - Use la búsqueda para localizar un módulo por nombre.
- Haga clic en el ícono para visualizar o editar un módulo.
- Ajuste la descripción y guarde.
Campos (diálogo de módulo)
| Campo | Qué es | ¿Obligatorio? | Efecto en el sistema/backend |
|---|---|---|---|
Nombre del módulo (module) | La clave técnica del módulo (p. ej.: manageToken) | Sí | Solo lectura en el diálogo. Es la clave que coincide con el enum CPM y que utiliza el gating de la UI. No es editable aquí para no romper el vínculo con el enum. |
| Descripción | Texto legible que explica el módulo | Sí | Guardado mediante updateUsers (CPM). No puede quedar vacío (botón Guardar deshabilitado). Es la etiqueta que se muestra en las listas de Funciones. |
Acciones y modales
- Visualizar: abre el módulo en lectura, con botón para alternar a edición.
- Editar: permite cambiar solo la descripción y guardar.
Reglas de negocio / precauciones
Atención
- El permiso es doble y este catálogo es solo la mitad. Crear/sembrar un módulo nuevo en producción se hace normalmente mediante Liquibase en DataInitializerService (seed en el CPM) junto con la adición de la clave en el enum
E_PERMISSION_MODULES(backend + copia en el frontend). Editar la descripción aquí no crea efecto de permiso por sí solo. - El nombre (clave) no es editable mediante el diálogo a propósito: renombrarlo rompería la correspondencia con el enum y el gating de la UI. Para introducir una nueva acción admin, agregue la clave al enum, siembre el módulo en la BD y asócielo a una Función.
- Sin el módulo registrado aquí, el botón/menú correspondiente nunca aparece aunque el enum sea correcto — porque la UI usa el flag dinámico.