diff --git a/backend/Controllers/UsuariosController.cs b/backend/Controllers/UsuariosController.cs index 8344bd0..a62fabe 100644 --- a/backend/Controllers/UsuariosController.cs +++ b/backend/Controllers/UsuariosController.cs @@ -56,11 +56,16 @@ namespace Inventario.API.Controllers if (usuarioExistente != null) { - // El usuario ya existe, lo actualizamos (solo la contraseña si viene) - var updateQuery = "UPDATE dbo.usuarios SET Password = @Password WHERE Id = @Id;"; - await connection.ExecuteAsync(updateQuery, new { usuario.Password, Id = usuarioExistente.Id }); + // El usuario ya existe. + // SOLO actualizamos la contraseña si se proporciona una nueva en el body de la petición. + if (!string.IsNullOrEmpty(usuario.Password)) + { + var updateQuery = "UPDATE dbo.usuarios SET Password = @Password, updated_at = GETDATE() WHERE Id = @Id;"; + await connection.ExecuteAsync(updateQuery, new { usuario.Password, Id = usuarioExistente.Id }); + } + // Si no se envía contraseña, simplemente no hacemos nada y el valor en la BD se conserva. - // Devolvemos el usuario actualizado + // Devolvemos el usuario que ya existe (con o sin la contraseña actualizada) var usuarioActualizado = await connection.QuerySingleOrDefaultAsync(findQuery, new { usuario.Username }); return Ok(usuarioActualizado); }