diff --git a/domain-server/src/DomainGatekeeper.cpp b/domain-server/src/DomainGatekeeper.cpp index 968d56ca84..a5ab4ce410 100644 --- a/domain-server/src/DomainGatekeeper.cpp +++ b/domain-server/src/DomainGatekeeper.cpp @@ -133,7 +133,7 @@ NodePermissions DomainGatekeeper::applyPermissionsForUser(bool isLocalUser, userPerms |= _server->_settingsManager.getStandardPermissionsForName(NodePermissions::standardNameAnonymous); qDebug() << "user-permissions: unverified or no username, so:" << userPerms; } else { - userPerms.setUserName(verifiedUsername); + userPerms.setVerifiedUserName(verifiedUsername); if (_server->_settingsManager.havePermissionsForName(verifiedUsername)) { userPerms = _server->_settingsManager.getPermissionsForName(verifiedUsername); qDebug() << "user-permissions: specific user matches, so:" << userPerms; @@ -185,7 +185,7 @@ void DomainGatekeeper::updateNodePermissions() { limitedNodeList->eachNode([this, limitedNodeList, &nodesToKill](const SharedNodePointer& node){ // the id and the username in NodePermissions will often be the same, but id is set before // authentication and username is only set once they user's key has been confirmed. - QString username = node->getPermissions().getUserName(); + QString username = node->getPermissions().getVerifiedUserName(); NodePermissions userPerms(NodePermissionsKey(username, 0)); if (node->getPermissions().isAssignment) { @@ -297,7 +297,7 @@ SharedNodePointer DomainGatekeeper::processAgentConnectRequest(const NodeConnect QString verifiedUsername; if (!username.isEmpty() && verifyUserSignature(username, usernameSignature, nodeConnection.senderSockAddr)) { // they sent us a username and the signature verifies it - userPerms.setUserName(username); + userPerms.setVerifiedUserName(username); verifiedUsername = username; getGroupMemberships(username); getDomainOwnerFriendsList(); @@ -801,7 +801,10 @@ void DomainGatekeeper::refreshGroupsCache() { nodeList->eachNode([&](const SharedNodePointer& node) { if (!node->getPermissions().isAssignment) { // this node is an agent - getGroupMemberships(node->getPermissions().getUserName()); + QString verifiedUserName = node->getPermissions().getVerifiedUserName(); + if (verifiedUserName != "") { + getGroupMemberships(verifiedUserName); + } agentCount++; } }); diff --git a/libraries/networking/src/NodePermissions.cpp b/libraries/networking/src/NodePermissions.cpp index e16b746b96..29b05fc837 100644 --- a/libraries/networking/src/NodePermissions.cpp +++ b/libraries/networking/src/NodePermissions.cpp @@ -146,7 +146,7 @@ QDataStream& operator>>(QDataStream& in, NodePermissions& perms) { } QDebug operator<<(QDebug debug, const NodePermissions& perms) { - debug.nospace() << "[permissions: " << perms.getID() << "/" << perms.getUserName() << " -- "; + debug.nospace() << "[permissions: " << perms.getID() << "/" << perms.getVerifiedUserName() << " -- "; debug.nospace() << "rank=" << perms.getRank() << ", groupID=" << perms.getGroupID() << "/" << (perms.isGroup() ? "y" : "n"); if (perms.can(NodePermissions::Permission::canConnectToDomain)) { diff --git a/libraries/networking/src/NodePermissions.h b/libraries/networking/src/NodePermissions.h index 411312f708..541f90aee8 100644 --- a/libraries/networking/src/NodePermissions.h +++ b/libraries/networking/src/NodePermissions.h @@ -35,8 +35,8 @@ public: NodePermissionsKey getKey() const { return NodePermissionsKey(_id, _rank); } // the _id member isn't authenticated/verified and _username is. - void setUserName(QString userName) { _userName = userName.toLower(); } - QString getUserName() const { return _userName; } + void setVerifiedUserName(QString userName) { _verifiedUserName = userName.toLower(); } + QString getVerifiedUserName() const { return _verifiedUserName; } void setGroupID(QUuid groupID) { _groupID = groupID; if (!groupID.isNull()) { _groupIDSet = true; }} QUuid getGroupID() const { return _groupID; } @@ -82,7 +82,7 @@ public: protected: QString _id; int _rank { 0 }; // 0 unless this is for a group - QString _userName; + QString _verifiedUserName; bool _groupIDSet { false }; QUuid _groupID;