Prompts para Páginas del Módulo de Roles y Permisos
1. Página de Creación, Edición e Inactivación de Roles
- Objetivo: Facilitar la creación de nuevos roles con nombre y descripción, permitir la edición de roles existentes y la inactivación de roles para restringir su uso sin eliminarlos del sistema.
- Prompt para Creación: "Genera el HTML para un formulario de creación de roles con los siguientes campos: Nombre del Rol (campo de texto, con validación para solo alfanuméricos y espacios, y mensaje de error si el nombre ya existe), Descripción (textarea, máximo 200 caracteres, con contador visible). Incluye un botón 'Crear Rol' que al hacer clic valide la información y, si es exitoso, muestre un mensaje verde de confirmación 'Rol creado exitosamente' y resalte temporalmente el nuevo rol en la lista de roles (ver sección 2)."
- Prompt para Edición: "Genera el HTML para un formulario de edición de roles que se mostrará al seleccionar un rol de la lista (sección 2). Debe contener los campos Nombre del Rol (texto, precargado con el nombre actual, con validación para solo alfanuméricos y espacios, y sin validación de duplicados durante la edición) y Descripción (textarea, precargado con la descripción actual, máximo 200 caracteres, con contador visible). Incluye botones 'Guardar Cambios' y 'Cancelar'. Al guardar exitosamente, mostrar un mensaje verde 'Rol actualizado exitosamente'."
- Prompt para Inactivación: "Al hacer clic en el botón 'Eliminar' de un rol en la lista (sección 2), muestra un cuadro de confirmación con el mensaje '¿Está seguro de que desea inactivar este rol? Los usuarios con este rol ya no podrán asignarse a nuevos usuarios.'. Incluye botones 'Confirmar Inactivación' y 'Cancelar'. Al confirmar, el rol no se elimina de la base de datos, sino que se marca como inactivo (indicar visualmente en la lista, por ejemplo, con un color gris o un icono). Mostrar un mensaje amarillo/naranja 'Rol inactivado'."
- Prompt para Listado de Roles: "Genera el HTML para una tabla que liste los roles existentes con las siguientes columnas: Nombre del Rol, Descripción, un botón 'Permisos' por cada rol, y un botón 'Eliminar' (que realmente inactiva el rol) por cada rol (excepto el rol de 'Super Administrador', si aplica la restricción). El listado debe permitir la visualización de los roles activos e inactivos (con una distinción visual)."
- Prompt para Botón de Permisos: "Al hacer clic en el botón 'Permisos' de un rol en la lista, debe abrir un pop-up (ver sección 3)."
2. Pop-up de Permisos
- Objetivo: Permitir la visualización y modificación de los permisos asignados a un rol específico.
- Prompt para Parte Superior (Permisos Asignados): "Genera el HTML para una tabla en la parte superior del pop-up. La cabecera de la tabla debe ser 'Módulo', 'Título de página o funcionalidad', y columnas con checkboxes para 'Crear', 'Editar', 'Inactivar' y 'Leer'. Muestra una lista de las páginas o funcionalidades a las que el rol actualmente tiene permisos asignados. Los checkboxes correspondientes a los permisos activos deben estar marcados."
- Prompt para Parte Inferior (Sin Permisos Asignados): "Genera el HTML para una tabla en la parte inferior del pop-up, separada visualmente de la parte superior. La cabecera de la tabla debe ser 'Módulo', 'Título de página o funcionalidad', y columnas con checkboxes vacíos para 'Crear', 'Editar', 'Inactivar' y 'Leer'. Muestra una lista de las páginas o funcionalidades a las que el rol NO tiene permisos asignados. Al marcar los checkboxes, se indica que se desean añadir esos permisos."
- Prompt para Botones del Pop-up: "Incluye un botón 'Actualizar' al final del pop-up. Al hacer clic en 'Actualizar', guarda los cambios de permisos realizados (tanto los activados en la parte inferior como los desactivados en la parte superior). Muestra un mensaje verde 'Permisos actualizados con éxito' y un botón 'Cerrar' que cierra el pop-up y regresa a la página de roles."
3. Página de Historial de Cambios - Módulo de Roles y Permisos
- Objetivo: Ofrecer una visión completa y filtrable de todas las actividades registradas en el sistema de Roles y Permisos para auditoría y trazabilidad.
- Prompt para Listado Básico: "Genera el HTML para una tabla que muestre un listado cronológico de los cambios en el sistema de roles y permisos con las siguientes columnas: Fecha y Hora, Usuario que realizó la acción, Rol Afectado, Acción Realizada (Creación, Edición, Inactivación, Modificación de Permisos), y Detalles (descripción específica del cambio realizado)."
- Prompt para Sistema de Filtrado Avanzado: "Añade al HTML un formulario o una serie de elementos de filtro que permitan a los usuarios buscar en el historial por: Rol (un select con la lista de roles), Usuario (un select con la lista de usuarios que realizaron acciones), Rango de Fechas (dos campos de selección de fecha), y Tipo de Acción (un select con opciones como 'Creación', 'Edición', 'Inactivación', 'Modificación de Permisos'). Al aplicar los filtros, la tabla del listado básico debe actualizarse para mostrar solo los registros coincidentes."
- Prompt para Opciones de Exportación: "Incluye botones para exportar la tabla del historial (con los filtros aplicados, si los hay) a formato CSV y a documento PDF."
- Prompt para Ejemplo de Vista en Interfaz: "Proporciona un ejemplo visual (puede ser texto plano simulando la tabla) del listado del historial con datos de ejemplo en las columnas: Fecha, Usuario, Rol, Acción, Detalles y los botones de exportación."
4. Autenticación Reforzada (2FA) - Notas de Implementación (No requiere HTML específico)
- Objetivo: Implementar una capa de seguridad adicional para roles críticos (Administradores y Junta Directiva) mediante la autenticación de dos factores.
- Prompt para Flujo de Asignación: "Describe el flujo de asignación de un rol con 2FA. Al asignar un rol marcado para 2FA a un usuario, el sistema debe generar un código de activación de 6 dígitos y enviarlo a la dirección de correo electrónico del usuario. ¿Se requiere alguna acción adicional por parte del usuario para activar el 2FA?"
- Prompt para Flujo de Login: "Describe el flujo de inicio de sesión para un usuario con 2FA activado. Después de ingresar las credenciales (usuario y contraseña), el sistema debe solicitar un código temporal de 6 dígitos enviado a su correo electrónico. Debe haber una opción para reenviar el código si expira."
5. Funcionalidades Adicionales (MVP) - Historial de Cambios (Ya cubierto en la sección 3)
- Objetivo: Mantener un registro inmutable de todas las acciones realizadas en el módulo de roles y permisos para fines de auditoría.
- Nota: La estructura HTML para el historial de cambios ya se definió en la sección 3. Los prompts aquí se enfocarían en la lógica de registro de eventos (backend).
- Prompt para Registro de Cambios: "Define la lógica para registrar cada acción realizada en el módulo de roles y permisos. Esto debe incluir: el ID del usuario que realizó la acción, la acción específica realizada (crear rol, editar rol, inactivar rol, asignar permiso, revocar permiso, etc.), la fecha y hora de la acción, y detalles específicos de los cambios realizados (por ejemplo, el nombre del rol creado o los permisos modificados). Asegúrate de que este registro sea inmutable."
6. Validaciones Clave (No requiere HTML específico)
- Prompt para Nombres de Roles: "Especifica la validación para el campo 'Nombre del Rol'. Debe permitir solo caracteres alfanuméricos y espacios. Al crear un nuevo rol, verifica que el nombre no exista ya en la base de datos y muestra el mensaje de error 'Ese nombre de rol ya existe, intente nuevamente' si se encuentra un duplicado."
- Prompt para Descripciones: "Especifica la validación para el campo 'Descripción del Rol'. Debe tener un límite máximo de 200 caracteres y mostrar un contador visible de los caracteres restantes."
7. Feedback al Usuario (Integrado en los prompts de las páginas)
- Nota: Los mensajes de feedback (éxito en verde, advertencia en amarillo/naranja, error en rojo, confirmaciones) deben integrarse en los prompts de las acciones específicas (creación, edición, inactivación, actualización de permisos, etc.).
8. Notas de Implementación (No requiere HTML específico)
- Prompt para Reflejo de Permisos en Tiempo Real: "Describe cómo se asegurará que los cambios en la asignación de permisos se reflejen inmediatamente en la interfaz de usuario para los usuarios afectados (posiblemente a través de la recarga de la página o mecanismos de actualización en tiempo real)."
- Prompt para Asignación de 2FA: "Detalla la integración con el servicio de correo electrónico para el envío de códigos de activación y códigos temporales para la autenticación de dos factores."
- Prompt para Historial de Cambios Inmutable: "Especifica la estrategia para asegurar que el historial de cambios sea inmutable y no pueda ser alterado una vez registrado (por ejemplo, utilizando solo inserciones en la base de datos y evitando actualizaciones o eliminaciones)."