mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 03:44:02 +02:00
fix bug that was losing verified status for users with permissions specific to their account
This commit is contained in:
parent
6ec8aff645
commit
8e5262872e
2 changed files with 12 additions and 6 deletions
|
@ -21,6 +21,9 @@
|
|||
#include "DomainServer.h"
|
||||
#include "DomainServerNodeData.h"
|
||||
|
||||
#define WANT_DEBUG 1
|
||||
|
||||
|
||||
using SharedAssignmentPointer = QSharedPointer<Assignment>;
|
||||
|
||||
DomainGatekeeper::DomainGatekeeper(DomainServer* server) :
|
||||
|
@ -134,16 +137,17 @@ NodePermissions DomainGatekeeper::applyPermissionsForUser(bool isLocalUser,
|
|||
if (verifiedUsername.isEmpty()) {
|
||||
userPerms |= _server->_settingsManager.getStandardPermissionsForName(NodePermissions::standardNameAnonymous);
|
||||
#ifdef WANT_DEBUG
|
||||
qDebug() << "| user-permissions: unverified or no username, so:" << userPerms;
|
||||
qDebug() << "| user-permissions: unverified or no username for" << userPerms.getID() << ", so:" << userPerms;
|
||||
#endif
|
||||
} else {
|
||||
userPerms.setVerifiedUserName(verifiedUsername);
|
||||
if (_server->_settingsManager.havePermissionsForName(verifiedUsername)) {
|
||||
userPerms = _server->_settingsManager.getPermissionsForName(verifiedUsername);
|
||||
userPerms.setVerifiedUserName(verifiedUsername);
|
||||
#ifdef WANT_DEBUG
|
||||
qDebug() << "| user-permissions: specific user matches, so:" << userPerms;
|
||||
#endif
|
||||
} else {
|
||||
userPerms.setVerifiedUserName(verifiedUsername);
|
||||
// they are logged into metaverse, but we don't have specific permissions for them.
|
||||
userPerms |= _server->_settingsManager.getStandardPermissionsForName(NodePermissions::standardNameLoggedIn);
|
||||
#ifdef WANT_DEBUG
|
||||
|
@ -851,7 +855,6 @@ void DomainGatekeeper::getDomainOwnerFriendsListErrorCallback(QNetworkReply& req
|
|||
|
||||
void DomainGatekeeper::refreshGroupsCache() {
|
||||
// if agents are connected to this domain, refresh our cached information about groups and memberships in such.
|
||||
|
||||
getDomainOwnerFriendsList();
|
||||
|
||||
int agentCount = 0;
|
||||
|
@ -872,4 +875,8 @@ void DomainGatekeeper::refreshGroupsCache() {
|
|||
}
|
||||
|
||||
updateNodePermissions();
|
||||
|
||||
#if WANT_DEBUG
|
||||
_server->_settingsManager.debugDumpGroupsState();
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -87,6 +87,8 @@ public:
|
|||
// calls http api to refresh group information
|
||||
void apiRefreshGroupInformation();
|
||||
|
||||
void debugDumpGroupsState();
|
||||
|
||||
signals:
|
||||
void updateNodePermissions();
|
||||
|
||||
|
@ -145,9 +147,6 @@ private:
|
|||
|
||||
// keep track of answers to api queries about which users are in which groups
|
||||
QHash<QString, QHash<QUuid, QUuid>> _groupMembership; // QHash<user-name, QHash<group-id, rank-id>>
|
||||
|
||||
|
||||
void debugDumpGroupsState();
|
||||
};
|
||||
|
||||
#endif // hifi_DomainServerSettingsManager_h
|
||||
|
|
Loading…
Reference in a new issue