# DH Inspección V2 — Fase A6 ## Versión ```text v0.6.0 · Fase A6 · Panel web administrativo ``` ## Rutas web ```text /login / /change-password /admin/users /admin/users/new /admin/users/:id /admin/roles /admin/audit ``` ## Autenticación web - el JWT de acceso y el token de renovación permanecen en cookies seguras; - el frontend no almacena JWT en `localStorage` ni `sessionStorage`; - las escrituras envían `x-csrf-token`; - un acceso vencido intenta una única renovación y repite el request original; - una sesión inválida vuelve al login; - la contraseña temporal bloquea todos los módulos hasta ser cambiada; - el cierre de sesión revoca la sesión actual. ## Autorización visible La navegación y las acciones se ocultan cuando el usuario no dispone del permiso correspondiente. El backend continúa siendo la autoridad definitiva. | Área | Permiso | |---|---| | Dashboard | `dashboard.read` | | Usuarios | `users.read`, `users.create`, `users.update`, `users.change_status`, `users.assign_roles` | | Roles | `roles.read`, `roles.manage` | | Auditoría | `audit.read` | ## Resumen administrativo A6 agrega: ```text GET /api/v3/dashboard/summary ``` Requiere `dashboard.read` y devuelve: - usuarios activos; - usuarios inactivos; - sesiones vigentes; - seis eventos recientes de auditoría; - fecha de generación. La lectura se ejecuta dentro de una transacción `REPEATABLE READ`. ## Usuarios - búsqueda y filtro por estado; - paginación; - alta con contraseña temporal y roles; - edición de datos personales; - activación y desactivación; - asignación múltiple de roles; - información de último acceso, bloqueo y cambio de contraseña. Se mantienen las protecciones de A4: no es posible desactivar la propia cuenta, quitar el último administrador de recuperación ni dejar el sistema sin acceso administrativo. ## Roles y permisos - listado de roles del sistema y personalizados; - alta de roles personalizados; - edición de nombre y descripción; - matriz dinámica de permisos; - cantidad de usuarios por rol. ## Auditoría - filtros por texto, acción, origen y fechas; - paginación; - detalle técnico en panel lateral; - visualización de `beforeData`, `afterData` y `metadata` ya sanitizados. ## Migraciones A6 no cambia el esquema y no incluye migraciones.