From e28b2025a97747657e8ad11657e706feb395c4d2 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Tue, 3 Nov 2020 20:47:48 +1300 Subject: [PATCH 1/2] Prompt for username or e-mail for domain login --- interface/resources/qml/LoginDialog/LinkAccountBody.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/resources/qml/LoginDialog/LinkAccountBody.qml b/interface/resources/qml/LoginDialog/LinkAccountBody.qml index 694fd6158f..a4d05d9bc4 100644 --- a/interface/resources/qml/LoginDialog/LinkAccountBody.qml +++ b/interface/resources/qml/LoginDialog/LinkAccountBody.qml @@ -114,7 +114,7 @@ Item { displayNameField.placeholderText = "Display Name (optional)"; var savedDisplayName = Settings.getValue("Avatar/displayName", ""); displayNameField.text = savedDisplayName; - emailField.placeholderText = (!isLoggingInToDomain) ? "Username or Email" : "Username"; + emailField.placeholderText = "Username or Email"; if (!isLoggingInToDomain) { var savedUsername = Settings.getValue("keepMeLoggedIn/savedUsername", ""); emailField.text = keepMeLoggedInCheckbox.checked ? savedUsername === "Unknown user" ? "" : savedUsername : ""; From 26405300fefee76bd7de8aebed8dee7453731fc6 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Sun, 8 Nov 2020 21:35:17 +1300 Subject: [PATCH 2/2] Handle username or email for domain login --- domain-server/src/DomainGatekeeper.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/domain-server/src/DomainGatekeeper.cpp b/domain-server/src/DomainGatekeeper.cpp index 18926fc805..7126c525bc 100644 --- a/domain-server/src/DomainGatekeeper.cpp +++ b/domain-server/src/DomainGatekeeper.cpp @@ -1238,7 +1238,7 @@ void DomainGatekeeper::requestDomainUser(const QString& username, const QString& // Get data pertaining to "me", the user who generated the access token. const QString WORDPRESS_USER_ROUTE = "wp/v2/users/me"; - const QString WORDPRESS_USER_QUERY = "_fields=username,roles"; + const QString WORDPRESS_USER_QUERY = "_fields=username,email,roles"; QUrl domainUserURL = apiBase + WORDPRESS_USER_ROUTE + (apiBase.contains("?") ? "&" : "?") + WORDPRESS_USER_QUERY; QNetworkRequest request; @@ -1270,8 +1270,13 @@ void DomainGatekeeper::requestDomainUserFinished() { if (200 <= httpStatus && httpStatus < 300) { QString username = rootObject.value("username").toString().toLower(); - if (_inFlightDomainUserIdentityRequests.contains(username)) { + QString email = rootObject.value("email").toString().toLower(); + + if (_inFlightDomainUserIdentityRequests.contains(username) || _inFlightDomainUserIdentityRequests.contains(email)) { // Success! Verified user. + if (!_inFlightDomainUserIdentityRequests.contains(username)) { + username = email; + } _verifiedDomainUserIdentities.insert(username, _inFlightDomainUserIdentityRequests.value(username)); _inFlightDomainUserIdentityRequests.remove(username);