mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 02:23:57 +02:00
Fix replicated users not being checked after username verified
This commit is contained in:
parent
2e23230e82
commit
029e6de2a0
1 changed files with 15 additions and 8 deletions
|
@ -131,6 +131,8 @@ DomainServer::DomainServer(int argc, char* argv[]) :
|
|||
|
||||
setupNodeListAndAssignments();
|
||||
|
||||
updateReplicatedNodes();
|
||||
|
||||
if (_type != NonMetaverse) {
|
||||
// if we have a metaverse domain, we'll use an access token for API calls
|
||||
resetAccountManagerAccessToken();
|
||||
|
@ -960,6 +962,11 @@ void DomainServer::handleConnectedNode(SharedNodePointer newNode) {
|
|||
emit userConnected();
|
||||
}
|
||||
|
||||
if (shouldReplicateNode(*newNode)) {
|
||||
qDebug() << "Setting node to replicated: " << newNode->getUUID();
|
||||
newNode->setIsReplicated(true);
|
||||
}
|
||||
|
||||
// send out this node to our other connected nodes
|
||||
broadcastNewNode(newNode);
|
||||
}
|
||||
|
@ -2217,16 +2224,19 @@ void DomainServer::updateReplicatedNodes() {
|
|||
_replicatedUsernames.clear();
|
||||
auto settings = _settingsManager.getSettingsMap();
|
||||
if (settings.contains(REPLICATION_SETTINGS_KEY)) {
|
||||
auto replicationSettings = settings.value(REPLICATION_SETTINGS_KEY).toJsonObject();
|
||||
auto usersSettings = replicationSettings.value("users").toArray();
|
||||
for (auto& username : usersSettings) {
|
||||
_replicatedUsernames.push_back(username.toString());
|
||||
auto replicationSettings = settings.value(REPLICATION_SETTINGS_KEY).toMap();
|
||||
if (replicationSettings.contains("users")) {
|
||||
auto usersSettings = replicationSettings.value("users").toList();
|
||||
for (auto& username : usersSettings) {
|
||||
_replicatedUsernames.push_back(username.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
auto nodeList = DependencyManager::get<LimitedNodeList>();
|
||||
nodeList->eachNode([&](const SharedNodePointer& otherNode) {
|
||||
if (shouldReplicateNode(*otherNode)) {
|
||||
qDebug() << "Setting node to replicated: " << otherNode->getUUID();
|
||||
otherNode->setIsReplicated(true);
|
||||
}
|
||||
});
|
||||
|
@ -2234,15 +2244,12 @@ void DomainServer::updateReplicatedNodes() {
|
|||
|
||||
bool DomainServer::shouldReplicateNode(const Node& node) {
|
||||
QString verifiedUsername = node.getPermissions().getVerifiedUserName();
|
||||
qDebug() << "Verified username: " << verifiedUsername;
|
||||
auto it = find(_replicatedUsernames.cbegin(), _replicatedUsernames.cend(), verifiedUsername);
|
||||
return it != _replicatedUsernames.end() && node.getType() == NodeType::Agent;
|
||||
};
|
||||
|
||||
void DomainServer::nodeAdded(SharedNodePointer node) {
|
||||
if (shouldReplicateNode(*node)) {
|
||||
node->setIsReplicated(true);
|
||||
}
|
||||
|
||||
// we don't use updateNodeWithData, so add the DomainServerNodeData to the node here
|
||||
node->setLinkedData(std::unique_ptr<DomainServerNodeData> { new DomainServerNodeData() });
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue