94 lines
2.3 KiB
Markdown
94 lines
2.3 KiB
Markdown
# 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.
|