From 8f0b33b54dd3a90cfaca88814e4ba6dd3ec93cb4 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Thu, 6 Aug 2020 00:04:22 +1200 Subject: [PATCH] Miscellaneous tidying --- domain-server/src/DomainGatekeeper.cpp | 10 +++--- interface/src/Application.cpp | 5 --- interface/src/ui/DialogsManager.cpp | 2 +- .../networking/src/DomainAccountManager.cpp | 36 +++++++++++-------- .../networking/src/DomainAccountManager.h | 4 +-- 5 files changed, 29 insertions(+), 28 deletions(-) diff --git a/domain-server/src/DomainGatekeeper.cpp b/domain-server/src/DomainGatekeeper.cpp index 5b0c526d9f..c77d188595 100644 --- a/domain-server/src/DomainGatekeeper.cpp +++ b/domain-server/src/DomainGatekeeper.cpp @@ -450,7 +450,7 @@ SharedNodePointer DomainGatekeeper::processAssignmentConnectRequest(const NodeCo return newNode; } -const QString AUTHENTICATION_ENAABLED = "authentication.enable_oauth2"; +const QString AUTHENTICATION_ENABLE_OAUTH2 = "authentication.enable_oauth2"; const QString AUTHENTICATION_OAUTH2_URL_PATH = "authentication.oauth2_url_path"; const QString AUTHENTICATION_WORDPRESS_URL_BASE = "authentication.wordpress_url_base"; const QString AUTHENTICATION_PLUGIN_CLIENT_ID = "authentication.plugin_client_id"; @@ -1155,7 +1155,7 @@ void DomainGatekeeper::getDomainOwnerFriendsListErrorCallback(QNetworkReply* req qDebug() << "getDomainOwnerFriendsList api call failed:" << requestReply->error(); } -// ####### TODO: Domain equivalent or addition [plugin groups] +// ####### TODO: Domain equivalent or addition void DomainGatekeeper::refreshGroupsCache() { // if agents are connected to this domain, refresh our cached information about groups and memberships in such. getDomainOwnerFriendsList(); @@ -1211,10 +1211,10 @@ Node::LocalID DomainGatekeeper::findOrCreateLocalID(const QUuid& uuid) { bool DomainGatekeeper::domainHasLogin() { // The domain may have its own users and groups in a WordPress site. - // ####### TODO: Add checks of any further domain server settings used. [plugin, groups] - return _server->_settingsManager.valueForKeyPath(AUTHENTICATION_ENAABLED).toBool() + return _server->_settingsManager.valueForKeyPath(AUTHENTICATION_ENABLE_OAUTH2).toBool() && !_server->_settingsManager.valueForKeyPath(AUTHENTICATION_OAUTH2_URL_PATH).toString().isEmpty() - && !_server->_settingsManager.valueForKeyPath(AUTHENTICATION_WORDPRESS_URL_BASE).toString().isEmpty(); + && !_server->_settingsManager.valueForKeyPath(AUTHENTICATION_WORDPRESS_URL_BASE).toString().isEmpty() + && !_server->_settingsManager.valueForKeyPath(AUTHENTICATION_PLUGIN_CLIENT_ID).toString().isEmpty(); } void DomainGatekeeper::requestDomainUser(const QString& username, const QString& accessToken, const QString& refreshToken) { diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index eec7d8a5f7..ed71d1f2fb 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1351,16 +1351,13 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo #endif connect(accountManager.data(), &AccountManager::usernameChanged, this, &Application::updateWindowTitle); - auto domainAccountManager = DependencyManager::get(); connect(domainAccountManager.data(), &DomainAccountManager::authRequired, dialogsManager.data(), &DialogsManager::showDomainLoginDialog); - connect(domainAccountManager.data(), &DomainAccountManager::loginComplete, this, &Application::updateWindowTitle); // ####### TODO: Connect any other signals from domainAccountManager. - // use our MyAvatar position and quat for address manager path addressManager->setPositionGetter([] { auto avatarManager = DependencyManager::get(); @@ -7122,8 +7119,6 @@ void Application::updateWindowTitle() const { QString domainDetails; if (currentPlaceName == authedDomain && isDomainLoggedIn) { - // ###### TODO - // domainDetails = "Domain: Logged in as " + domainUsername; domainDetails = "Domain: Logged in as " + domainUsername; } else { domainDetails = "Domain: Not Logged In"; diff --git a/interface/src/ui/DialogsManager.cpp b/interface/src/ui/DialogsManager.cpp index ae4f43d6fa..8c8e3bc3c3 100644 --- a/interface/src/ui/DialogsManager.cpp +++ b/interface/src/ui/DialogsManager.cpp @@ -153,7 +153,7 @@ void DialogsManager::showDomainLoginDialog(const QString& domain) { // #######: TODO: Domain version of toggleLoginDialog()? -// #######: TODO: Domain version of hiadLoginDialog()? +// #######: TODO: Domain version of hideLoginDialog()? void DialogsManager::showUpdateDialog() { diff --git a/libraries/networking/src/DomainAccountManager.cpp b/libraries/networking/src/DomainAccountManager.cpp index 19c16178e2..928b581a5b 100644 --- a/libraries/networking/src/DomainAccountManager.cpp +++ b/libraries/networking/src/DomainAccountManager.cpp @@ -17,31 +17,34 @@ #include #include -#include #include +#include -#include "NodeList.h" #include "NetworkingConstants.h" -#include "NetworkLogging.h" #include "NetworkAccessManager.h" +#include "NetworkLogging.h" +#include "NodeList.h" // FIXME: Generalize to other OAuth2 sources for domain login. const bool VERBOSE_HTTP_REQUEST_DEBUGGING = false; +// ####### TODO: Enable and use these? // ####### TODO: Add storing domain URL and check against it when retrieving values? // ####### TODO: Add storing _authURL and check against it when retrieving values? +/* Setting::Handle domainAccessToken {"private/domainAccessToken", "" }; Setting::Handle domainAccessRefreshToken {"private/domainAccessToken", "" }; Setting::Handle domainAccessTokenExpiresIn {"private/domainAccessTokenExpiresIn", -1 }; Setting::Handle domainAccessTokenType {"private/domainAccessTokenType", "" }; - +*/ DomainAccountManager::DomainAccountManager() : _authURL(), _username(), _access_token(), - _refresh_token() + _refresh_token(), + _domain_name() { connect(this, &DomainAccountManager::loginComplete, this, &DomainAccountManager::sendInterfaceAccessTokenToServer); } @@ -61,6 +64,10 @@ void DomainAccountManager::setAuthURL(const QUrl& authURL) { } } +bool DomainAccountManager::isLoggedIn() { + return !_authURL.isEmpty() && hasValidAccessToken(); +} + void DomainAccountManager::requestAccessToken(const QString& username, const QString& password) { _username = username; @@ -149,25 +156,24 @@ bool DomainAccountManager::hasValidAccessToken() { } return false; - } else { - - // ####### TODO:: - - // if (!_isWaitingForTokenRefresh && needsToRefreshToken()) { - // refreshAccessToken(); - // } - - return true; } + + // ####### TODO + + // if (!_isWaitingForTokenRefresh && needsToRefreshToken()) { + // refreshAccessToken(); + // } + + return true; } void DomainAccountManager::setTokensFromJSON(const QJsonObject& jsonObject, const QUrl& url) { _access_token = jsonObject["access_token"].toString(); _refresh_token = jsonObject["refresh_token"].toString(); + // ####### TODO: Enable and use these? // ####### TODO: Protect these per AccountManager? // ######: TODO: clientID needed? - // qCDebug(networking) << "Storing a domain account with access-token for" << qPrintable(url.toString()); // domainAccessToken.set(jsonObject["access_token"].toString()); // domainAccessRefreshToken.set(jsonObject["refresh_token"].toString()); diff --git a/libraries/networking/src/DomainAccountManager.h b/libraries/networking/src/DomainAccountManager.h index c8bc5e912c..31226d6990 100644 --- a/libraries/networking/src/DomainAccountManager.h +++ b/libraries/networking/src/DomainAccountManager.h @@ -31,7 +31,7 @@ public: QString getRefreshToken() { return _refresh_token; } QString getAuthedDomain() { return _domain_name; } - bool isLoggedIn() { return !_authURL.isEmpty() && hasValidAccessToken(); } + bool isLoggedIn(); Q_INVOKABLE bool checkAndSignalForAccessToken(); @@ -60,7 +60,7 @@ private: QString _username; // ####### TODO: Store elsewhere? QString _access_token; // ####... "" QString _refresh_token; // ####... "" - QString _domain_name; // + QString _domain_name; // ####... "" }; #endif // hifi_DomainAccountManager_h