Adds remember password checkbox

Reviewed By: elexis
Differential Revision: https://code.wildfiregames.com/D822
This was SVN commit r21311.
This commit is contained in:
Vladislav Belov 2018-02-21 22:01:03 +00:00
parent c8fda40b02
commit b6b547d5f8
3 changed files with 38 additions and 1 deletions

View File

@ -405,6 +405,7 @@ room = "arena23" ; Default MUC room to join
server = "lobby.wildfiregames.com" ; Address of lobby server
xpartamupp = "wfgbot23" ; Name of the server-side xmpp client that manage games
buddies = "," ; Comma separated list of playernames that the current user has marked as buddies
rememberpassword = true ; Whether to store the encrypted password in the user config
[lobby.columns]
gamerating = false ; Show the average rating of the participating players in a column of the gamelist

View File

@ -7,6 +7,8 @@ var g_DisplayingSystemMessage = false;
function init()
{
Engine.GetGUIObjectByName("rememberPassword").checked =
Engine.ConfigDB_GetValue("user", "lobby.rememberpassword") == "true";
g_EncryptedPassword = Engine.ConfigDB_GetValue("user", "lobby.password");
if (Engine.ConfigDB_GetValue("user", "lobby.login") && g_EncryptedPassword)
switchPage("connect");
@ -196,7 +198,14 @@ function onTick()
// We only store the encrypted password, so make sure to re-encrypt it if changed before saving.
if (password != g_EncryptedPassword.substring(0, 10))
g_EncryptedPassword = Engine.EncryptPassword(password, username);
saveSettingAndWriteToUserConfig("lobby.password", g_EncryptedPassword);
Engine.ConfigDB_CreateValue("user", "lobby.password", g_EncryptedPassword);
if (Engine.ConfigDB_GetValue("user", "lobby.rememberpassword") == "true")
Engine.ConfigDB_WriteValueToFile("user", "lobby.password", g_EncryptedPassword, "config/user.cfg");
else
{
Engine.ConfigDB_RemoveValue("user", "lobby.password");
Engine.ConfigDB_WriteFile("user", "config/user.cfg");
}
break;
}
}
@ -277,3 +286,22 @@ function prelobbyCancel()
else
Engine.PopGuiPage();
}
function toggleRememberPassword()
{
let checkbox = Engine.GetGUIObjectByName("rememberPassword");
let enabled = Engine.ConfigDB_GetValue("user", "lobby.rememberpassword") == "true";
if (!checkbox.checked && enabled && Engine.ConfigDB_GetValue("user", "lobby.password"))
{
messageBox(
360, 160,
translate("Are you sure you want to delete the password after connecting?"),
translate("Confirmation"),
[translate("No"), translate("Yes")],
[function() { checkbox.checked = true; },
function() { saveSettingAndWriteToUserConfig("lobby.rememberpassword", String(!enabled)); }]
);
}
else
saveSettingAndWriteToUserConfig("lobby.rememberpassword", String(!enabled));
}

View File

@ -59,6 +59,14 @@
lobbyStartConnect();
</action>
</object>
<object name="rememberPassword" type="checkbox" size="50%-19 115 50% 135" style="ModernTickBox">
<action on="Press">
toggleRememberPassword();
</action>
</object>
<object type="text" size="50%+10 115 100%-20 135" style="ModernLeftLabelText">
<translatableAttribute id="caption">Remember Password</translatableAttribute>
</object>
</object>
<object name="pageRegister" size="0 32 100% 100%" hidden="true">