[Client] Stop sending the saved login when its checkbox is unticked (#7713)

Unticking 'Save password' only disabled auto-connect: the dialog still handed
the stored verifier to the connection, so a password typed at the same time was
ignored, and a server that still has the legacy hash refused the login before it
could upgrade the account.

Clear the verifier in effect on untick, restore it on re-tick unless a password
has been typed, and drop the stale 'Password saved' hint. The downgrade abort
can now point at unticking the box and logging in with the password, without the
extra reconnect round-trip.

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
BruebachL 2026-11-04 07:06:35 +01:00 • committed by GitHub
parent 96f8c3a423
commit 99422c2bf0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 25 additions and 6 deletions

View file

@ -98,6 +98,10 @@ private:
QPushButton *btnConnect, *btnForgotPassword, *btnRefreshServers, *btnDeleteServer;
QMap<QString, std::pair<QString, UserConnection_Information>> savedHostList;
HandlePublicServers *hps;
//! \brief Saved "$scrypt$..." verifier as loaded for the selected profile, kept so that
//! re-ticking "Save password" after unticking restores it.
QString savedVerifier;
//! \brief Verifier in effect for this connection: empty while "Save password" is unticked.
QString storedVerifier;
const QString placeHolderText = tr("Downloading...");
};