This commit is contained in:
David Rowe 2020-08-18 16:33:47 +12:00
parent 9bb5add1ca
commit bf60cf5b4c
3 changed files with 29 additions and 28 deletions

View file

@ -7086,7 +7086,7 @@ void Application::updateWindowTitle() const {
bool isMetaverseLoggedIn = accountManager->isLoggedIn(); bool isMetaverseLoggedIn = accountManager->isLoggedIn();
bool hasDomainLogIn = domainAccountManager->hasLogIn(); bool hasDomainLogIn = domainAccountManager->hasLogIn();
bool isDomainLoggedIn = domainAccountManager->isLoggedIn(); bool isDomainLoggedIn = domainAccountManager->isLoggedIn();
QString authedDomain = domainAccountManager->getAuthedDomain(); QString authedDomainName = domainAccountManager->getAuthedDomainName();
QString buildVersion = " - Vircadia - " QString buildVersion = " - Vircadia - "
+ (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable ? QString("Version") : QString("Build")) + (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable ? QString("Version") : QString("Build"))
@ -7123,7 +7123,7 @@ void Application::updateWindowTitle() const {
QString domainDetails; QString domainDetails;
if (hasDomainLogIn) { if (hasDomainLogIn) {
if (currentPlaceName == authedDomain && isDomainLoggedIn) { if (currentPlaceName == authedDomainName && isDomainLoggedIn) {
domainDetails = " (Domain: Logged in as " + domainUsername + ")"; domainDetails = " (Domain: Logged in as " + domainUsername + ")";
} else { } else {
domainDetails = " (Domain: Not Logged In)"; domainDetails = " (Domain: Not Logged In)";

View file

@ -57,17 +57,19 @@ void DomainAccountManager::setDomainURL(const QUrl& domainURL) {
_authURL = _previousAuthURL; _authURL = _previousAuthURL;
_clientID = _previousClientID; _clientID = _previousClientID;
_username = _previousUsername; _username = _previousUsername;
_access_token = _previousAccessToken; _accessToken = _previousAccessToken;
_refresh_token = _previousRefreshToken; _refreshToken = _previousRefreshToken;
_domain_name = _previousDomainName; _authedDomainName = _previousAuthedDomainName;
// ####### TODO: Refresh OAuth2 access token if necessary. // ####### TODO: Refresh OAuth2 access token if necessary.
} else { } else {
_authURL.clear(); _authURL.clear();
_clientID.clear(); _clientID.clear();
_username.clear(); _username.clear();
_access_token.clear(); _accessToken.clear();
_refresh_token.clear(); _refreshToken.clear();
_domain_name.clear(); _authedDomainName.clear();
} }
} }
@ -81,8 +83,8 @@ void DomainAccountManager::setAuthURL(const QUrl& authURL) {
qCDebug(networking) << "DomainAccountManager URL for authenticated requests has been changed to" qCDebug(networking) << "DomainAccountManager URL for authenticated requests has been changed to"
<< qPrintable(_authURL.toString()); << qPrintable(_authURL.toString());
_access_token = ""; _accessToken = "";
_refresh_token = ""; _refreshToken = "";
} }
bool DomainAccountManager::hasLogIn() { bool DomainAccountManager::hasLogIn() {
@ -96,8 +98,8 @@ bool DomainAccountManager::isLoggedIn() {
void DomainAccountManager::requestAccessToken(const QString& username, const QString& password) { void DomainAccountManager::requestAccessToken(const QString& username, const QString& password) {
_username = username; _username = username;
_access_token = ""; _accessToken = "";
_refresh_token = ""; _refreshToken = "";
QNetworkRequest request; QNetworkRequest request;
@ -136,7 +138,7 @@ void DomainAccountManager::requestAccessTokenFinished() {
if (rootObject.contains("access_token")) { if (rootObject.contains("access_token")) {
// Success. // Success.
auto nodeList = DependencyManager::get<NodeList>(); auto nodeList = DependencyManager::get<NodeList>();
_domain_name = nodeList->getDomainHandler().getHostname(); _authedDomainName = nodeList->getDomainHandler().getHostname();
QUrl rootURL = requestReply->url(); QUrl rootURL = requestReply->url();
rootURL.setPath(""); rootURL.setPath("");
setTokensFromJSON(rootObject, rootURL); setTokensFromJSON(rootObject, rootURL);
@ -146,9 +148,9 @@ void DomainAccountManager::requestAccessTokenFinished() {
_previousAuthURL = _authURL; _previousAuthURL = _authURL;
_previousClientID = _clientID; _previousClientID = _clientID;
_previousUsername = _username; _previousUsername = _username;
_previousAccessToken = _access_token; _previousAccessToken = _accessToken;
_previousRefreshToken = _refresh_token; _previousRefreshToken = _refreshToken;
_previousDomainName = _domain_name; _previousAuthedDomainName = _authedDomainName;
// ####### TODO: Handle "keep me logged in". // ####### TODO: Handle "keep me logged in".
@ -183,7 +185,7 @@ bool DomainAccountManager::accessTokenIsExpired() {
bool DomainAccountManager::hasValidAccessToken() { bool DomainAccountManager::hasValidAccessToken() {
// ###### TODO: wire this up to actually retrieve a token (based on session or storage) and confirm that it is in fact valid and relevant to the current domain. // ###### TODO: wire this up to actually retrieve a token (based on session or storage) and confirm that it is in fact valid and relevant to the current domain.
// QString currentDomainAccessToken = domainAccessToken.get(); // QString currentDomainAccessToken = domainAccessToken.get();
QString currentDomainAccessToken = _access_token; QString currentDomainAccessToken = _accessToken;
// if (currentDomainAccessToken.isEmpty() || accessTokenIsExpired()) { // if (currentDomainAccessToken.isEmpty() || accessTokenIsExpired()) {
if (currentDomainAccessToken.isEmpty()) { if (currentDomainAccessToken.isEmpty()) {
@ -205,8 +207,8 @@ bool DomainAccountManager::hasValidAccessToken() {
} }
void DomainAccountManager::setTokensFromJSON(const QJsonObject& jsonObject, const QUrl& url) { void DomainAccountManager::setTokensFromJSON(const QJsonObject& jsonObject, const QUrl& url) {
_access_token = jsonObject["access_token"].toString(); _accessToken = jsonObject["access_token"].toString();
_refresh_token = jsonObject["refresh_token"].toString(); _refreshToken = jsonObject["refresh_token"].toString();
// ####### TODO: Enable and use these? // ####### TODO: Enable and use these?
// ####### TODO: Protect these per AccountManager? // ####### TODO: Protect these per AccountManager?

View file

@ -27,10 +27,10 @@ public:
void setAuthURL(const QUrl& authURL); void setAuthURL(const QUrl& authURL);
void setClientID(const QString& clientID) { _clientID = clientID; } void setClientID(const QString& clientID) { _clientID = clientID; }
QString getUsername() { return _username; } const QString& getUsername() { return _username; }
QString getAccessToken() { return _access_token; } const QString& getAccessToken() { return _accessToken; }
QString getRefreshToken() { return _refresh_token; } const QString& getRefreshToken() { return _refreshToken; }
QString getAuthedDomain() { return _domain_name; } const QString& getAuthedDomainName() { return _authedDomainName; }
bool hasLogIn(); bool hasLogIn();
bool isLoggedIn(); bool isLoggedIn();
@ -39,7 +39,6 @@ public:
public slots: public slots:
void requestAccessToken(const QString& username, const QString& password); void requestAccessToken(const QString& username, const QString& password);
void requestAccessTokenFinished(); void requestAccessTokenFinished();
signals: signals:
@ -62,9 +61,9 @@ private:
QString _clientID; QString _clientID;
QString _username; QString _username;
QString _access_token; // ####... "" QString _accessToken;
QString _refresh_token; // ####... "" QString _refreshToken;
QString _domain_name; // ####... "" QString _authedDomainName;
// ####### TODO: Handle more than one domain. // ####### TODO: Handle more than one domain.
QUrl _previousDomainURL; QUrl _previousDomainURL;
@ -73,7 +72,7 @@ private:
QString _previousUsername; QString _previousUsername;
QString _previousAccessToken; QString _previousAccessToken;
QString _previousRefreshToken; QString _previousRefreshToken;
QString _previousDomainName; QString _previousAuthedDomainName;
}; };
#endif // hifi_DomainAccountManager_h #endif // hifi_DomainAccountManager_h