feat: version 3.0.0 -- Correcciones de auditoria de seguridad, accesibilidad y redundancia
Permisos (superadmin, viewer, busqueda, tareas recurrentes), bootstrap atomico, revocacion de JWT por version de sesion (028), control optimista de edicion (029), logo sin SVG + CSP, ingesta endurecida, correos escapados, borradores, paginacion de proyectos, accesibilidad de dialogos/controles e i18n. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -70,6 +70,13 @@
|
||||
editables directo por el cliente: actividad con tareas = % de tareas hechas; actividad sin
|
||||
tareas = manual (0-100); proyecto = promedio del avance de sus actividades.
|
||||
- `users.password_hash` con bcrypt, nunca texto plano ni reversible.
|
||||
- `users.session_version` (migración `028`) comienza en 1 y aumenta al cambiar/restablecer clave;
|
||||
cada JWT de sesión debe tener la misma versión. Aplicar la migración antes de iniciar el backend nuevo.
|
||||
- Migración `029`: `edit_version` comienza en 1 en proyectos, comentarios, actividades, tareas,
|
||||
departamentos, usuarios, catálogos, notas, tareas recurrentes y equipos. El `UPDATE` de edición
|
||||
verifica la versión y la incrementa atómicamente; sin coincidencia responde 409. En
|
||||
`system_settings`, las claves `company_edit_version` y `smtp_edit_version` serializan los
|
||||
guardados de cada panel dentro de una transacción. Aplicar 029 antes de iniciar el backend nuevo.
|
||||
- `users.status` (`pending_verification`/`pending_approval`/`active`/`invited`) es el ciclo de vida
|
||||
de la cuenta, independiente de `is_active` (que sigue siendo el interruptor manual del admin
|
||||
para desactivar a alguien ya activo). Un usuario `pending_approval` rechazado se **borra**
|
||||
|
||||
Reference in New Issue
Block a user