feat: version 2.7.0 -- menu Contraseñas (repositorio de credenciales privado)
Nuevo modulo backend/src/modules/vault/: contraseña y notas cifradas en el servidor (AES-256-GCM, mismo mecanismo ya usado para la clave SMTP). Acceso al menu protegido con un PIN de 4 digitos independiente del login (token corto propio, header X-Vault-Token, nunca el JWT de sesion). El PIN no participa del cifrado -- cambiarlo o restablecerlo por correo nunca afecta las contraseñas ya guardadas. Privado por usuario, sin excepcion. Cada accion sensible (crear/editar/eliminar/ revelar/desbloquear) queda en audit_log. Compartir con otro usuario queda para una proxima version. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -348,6 +348,13 @@ table.list-table { width: 100%; border-collapse: collapse; font-size: .8rem; }
|
||||
.login-links { display: flex; justify-content: space-between; gap: 10px; margin-top: 14px; font-size: .76rem; flex-wrap: wrap; }
|
||||
.login-links a { color: rgb(var(--muted)); text-decoration: none; }
|
||||
.login-links a:hover { color: rgb(var(--accent)); text-decoration: underline; }
|
||||
.link-button {
|
||||
background: none; border: none; padding: 0; cursor: pointer;
|
||||
color: rgb(var(--muted)); font-size: .76rem; text-decoration: none;
|
||||
}
|
||||
.link-button:hover { color: rgb(var(--accent)); text-decoration: underline; }
|
||||
.text-link { color: rgb(var(--accent)); text-decoration: none; }
|
||||
.text-link:hover { text-decoration: underline; }
|
||||
|
||||
/* --- DetailPopup (ver DetailPopup.jsx) ---
|
||||
Al elegir un item de un listado, la lista queda inactiva detras del overlay y el popup
|
||||
|
||||
Reference in New Issue
Block a user