diff options
author | jonkoorm <jonkoorm@users.noreply.gitlab.com> | 2021-10-24 15:54:49 -0500 |
---|---|---|
committer | jonkoorm <jonkoorm@users.noreply.gitlab.com> | 2021-10-24 16:07:26 -0500 |
commit | 4d3f49696ef96e78b8d1653c86b83b257f4dbec8 (patch) | |
tree | 81b0117d15984af28411f4dea3b4cfca72453984 /src/progs | |
parent | b47e02f1e70a1f303bee370110448d92bc0a3684 (diff) | |
download | ManaVerse-keep_password.tar.gz ManaVerse-keep_password.tar.bz2 ManaVerse-keep_password.tar.xz ManaVerse-keep_password.zip |
Enable password remembering in user loginkeep_password
Password is recorded in the 'password' option in config.xml
The 'remember_password' option is added to save the status
Diffstat (limited to 'src/progs')
-rw-r--r-- | src/progs/manaplus/client.cpp | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/progs/manaplus/client.cpp b/src/progs/manaplus/client.cpp index d8ba7e1c2..6b05b0809 100644 --- a/src/progs/manaplus/client.cpp +++ b/src/progs/manaplus/client.cpp @@ -497,6 +497,7 @@ void Client::gameInit() loginData.password = settings.options.password; LoginDialog::savedPassword = settings.options.password; loginData.remember = (serverConfig.getValue("remember", 1) != 0); + loginData.remember_password = (serverConfig.getValue("remember_password", 1) != 0); loginData.registerLogin = false; if (mCurrentServer.hostname.empty()) @@ -517,6 +518,9 @@ void Client::gameInit() if (loginData.username.empty() && loginData.remember) loginData.username = serverConfig.getValue("username", ""); + + if (loginData.password.empty() && loginData.remember_password) + loginData.password = serverConfig.getValue("password", ""); if (mState != State::ERROR) mState = State::CHOOSE_SERVER; @@ -853,16 +857,28 @@ void Client::stateConnectServer1() { loginData.username = settings.options.username; } -#ifdef SAVE_PASSWORD - LoginDialog::savedPassword = loginData.remember ? - serverConfig.getValue("password", "") : ""; - loginData.password = LoginDialog::savedPassword; - settings.options.password = LoginDialog::savedPassword; -#endif + + if (settings.options.password.empty()) + { + if (loginData.remember_password) + { + LoginDialog::savedPassword = serverConfig.getValue("password", ""); + loginData.password = LoginDialog::savedPassword; + settings.options.password = LoginDialog::savedPassword; + } + else + loginData.password.clear(); + } + else + { + loginData.password = settings.options.password; + } + settings.login = loginData.username; WindowManager::updateTitle(); loginData.remember = (serverConfig.getValue("remember", 1) != 0); + loginData.remember_password = (serverConfig.getValue("remember_password", 1) != 0); Net::connectToServer(mCurrentServer); #ifdef USE_MUMBLE @@ -1638,13 +1654,11 @@ int Client::gameExec() case State::ERROR: BLOCK_START("Client::gameExec State::ERROR") config.write(); -#ifdef SAVE_PASSWORD if (errorMessage == "Wrong password.") { serverConfig.setValue("password", ""); serverConfig.write(); } -#endif if (mOldState == State::GAME) serverConfig.write(); logger->log1("State: ERROR"); |