From 60048162c086911dce0f09e267d63b61e85f44ca Mon Sep 17 00:00:00 2001 From: David Rowe Date: Tue, 4 Aug 2020 21:00:09 +1200 Subject: [PATCH] Use WordPress user roles as domain groups --- domain-server/src/DomainGatekeeper.cpp | 25 ++++++++----------------- domain-server/src/DomainGatekeeper.h | 1 - 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/domain-server/src/DomainGatekeeper.cpp b/domain-server/src/DomainGatekeeper.cpp index ad637f3c17..90a6ee9f5f 100644 --- a/domain-server/src/DomainGatekeeper.cpp +++ b/domain-server/src/DomainGatekeeper.cpp @@ -531,7 +531,6 @@ SharedNodePointer DomainGatekeeper::processAgentConnectRequest(const NodeConnect nodeConnection.senderSockAddr)) { // User's domain identity is confirmed. verifiedDomainUsername = domainUsername; - getDomainGroupMemberships(verifiedDomainUsername); } else { // User's domain identity didn't check out. @@ -1108,20 +1107,6 @@ void DomainGatekeeper::getIsGroupMemberErrorCallback(QNetworkReply* requestReply } -void DomainGatekeeper::getDomainGroupMemberships(const QString& domainUserName) { - - // ####### TODO: Get user's domain group memberships (WordPress roles) from domain. [plugin groups] - // This may be able to be provided at the same time as the "authenticate user" call to the domain API, in which case - // a copy of some of the following code can be made there. However, this code is still needed for refreshing groups. - - // ####### TODO: Check how often this method and the WordPress API is called. [plugin groups] - - QStringList wordpressGroupsForUser; - wordpressGroupsForUser << "silVER" << "gold" << "coal"; - _domainGroupMemberships[domainUserName] = wordpressGroupsForUser; -} - - void DomainGatekeeper::getDomainOwnerFriendsList() { JSONCallbackParameters callbackParams; callbackParams.callbackReceiver = this; @@ -1282,13 +1267,19 @@ void DomainGatekeeper::requestDomainUserFinished() { if (200 <= httpStatus && httpStatus < 300) { - QString username = rootObject["username"].toString().toLower(); + QString username = rootObject.value("username").toString().toLower(); if (_inFlightDomainUserIdentityRequests.contains(username)) { // Success! Verified user. _verifiedDomainUserIdentities.insert(username, _inFlightDomainUserIdentityRequests.value(username)); _inFlightDomainUserIdentityRequests.remove(username); - // ####### TODO: Handle roles. + // User user's WordPress roles as domain groups. + QStringList domainUserGroups; + auto userRoles = rootObject.value("roles").toArray(); + foreach (auto role, userRoles) { + domainUserGroups.append(role.toString()); + } + _domainGroupMemberships[username] = domainUserGroups; } else { // Failure. diff --git a/domain-server/src/DomainGatekeeper.h b/domain-server/src/DomainGatekeeper.h index 0e1da5d6ee..cf41786e4a 100644 --- a/domain-server/src/DomainGatekeeper.h +++ b/domain-server/src/DomainGatekeeper.h @@ -158,7 +158,6 @@ private: DomainUserIdentities _inFlightDomainUserIdentityRequests; // Domain user identity requests currently in progress. DomainUserIdentities _verifiedDomainUserIdentities; // Verified domain users. - void getDomainGroupMemberships(const QString& domainUserName); QHash _domainGroupMemberships; // };