1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Add register dialog to separate login/register (#12185)

New users find Minetest's account system confusing.
This change moves username/password to a new dialog,
with login and register buttons added to the Join Game tab.

The old registration confirmation dialog is removed in
favour of the new dialog.

Fixes #8138
This commit is contained in:
rubenwardy 2022-06-05 16:47:38 +01:00 committed by GitHub
parent 21323ef1ff
commit 03d86ea0b4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 232 additions and 402 deletions

View file

@ -101,11 +101,20 @@ void Client::handleCommand_Hello(NetworkPacket* pkt)
// Authenticate using that method, or abort if there wasn't any method found
if (chosen_auth_mechanism != AUTH_MECHANISM_NONE) {
if (chosen_auth_mechanism == AUTH_MECHANISM_FIRST_SRP &&
!m_simple_singleplayer_mode &&
!getServerAddress().isLocalhost() &&
g_settings->getBool("enable_register_confirmation")) {
promptConfirmRegistration(chosen_auth_mechanism);
bool is_register = chosen_auth_mechanism == AUTH_MECHANISM_FIRST_SRP;
ELoginRegister mode = is_register ? ELoginRegister::Register : ELoginRegister::Login;
if (m_allow_login_or_register != ELoginRegister::Any &&
m_allow_login_or_register != mode) {
m_chosen_auth_mech = AUTH_MECHANISM_NONE;
m_access_denied = true;
if (m_allow_login_or_register == ELoginRegister::Login) {
m_access_denied_reason =
gettext("Name is not registered. To create an account on this server, click 'Register'");
} else {
m_access_denied_reason =
gettext("Name is taken. Please choose another name");
}
m_con->Disconnect();
} else {
startAuth(chosen_auth_mechanism);
}