chore: import DH V2 D5.6.4 production baseline
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user