From 2f36cd0fb0c80766f310f87f1420ec2847b4a3b6 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Mon, 27 Apr 2015 15:30:17 -0700 Subject: [PATCH 01/13] make it so assignment-clients runnings scripts can rez entities --- domain-server/src/DomainServer.cpp | 20 +++++++++++++++---- domain-server/src/PendingAssignedNodeData.cpp | 9 ++++++--- domain-server/src/PendingAssignedNodeData.h | 13 ++++++++++-- libraries/networking/src/Assignment.cpp | 6 +++++- libraries/networking/src/NodeData.h | 10 ++++++++++ 5 files changed, 48 insertions(+), 10 deletions(-) diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index d7cd7ec47d..14dea70c5c 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -504,7 +504,11 @@ void DomainServer::populateStaticScriptedAssignmentsFromSettings() { Assignment::AgentType, scriptPool); scriptAssignment->setPayload(scriptURL.toUtf8()); - + + // we want a script added by the domain owner to be able to do what it wants with entities. + scriptAssignment->setCanRez(true); + scriptAssignment->setCanAdjustLocks(true); + // add it to static hash so we know we have to keep giving it back out addStaticAssignmentToAssignmentHash(scriptAssignment); } @@ -675,6 +679,12 @@ void DomainServer::handleConnectRequest(const QByteArray& packet, const HifiSock nodeData->setAssignmentUUID(matchingQueuedAssignment->getUUID()); nodeData->setWalletUUID(pendingAssigneeData->getWalletUUID()); + // always allow assignment clients to create and destroy entities + nodeData->setCanAdjustLocks(true); + nodeData->setCanRez(true); + newNode->setCanAdjustLocks(true); + newNode->setCanRez(true); + // now that we've pulled the wallet UUID and added the node to our list, delete the pending assignee data delete pendingAssigneeData; } @@ -1052,7 +1062,9 @@ void DomainServer::readAvailableDatagrams() { // add the information for that deployed assignment to the hash of pending assigned nodes PendingAssignedNodeData* pendingNodeData = new PendingAssignedNodeData(assignmentToDeploy->getUUID(), - requestAssignment.getWalletUUID()); + requestAssignment.getWalletUUID(), + true, true + ); _pendingAssignedNodes.insert(uniqueAssignment.getUUID(), pendingNodeData); } else { if (requestAssignment.getType() != Assignment::AgentType @@ -2119,10 +2131,10 @@ SharedAssignmentPointer DomainServer::deployableAssignmentForRequest(const Assig Assignment* assignment = sharedAssignment->data(); bool requestIsAllTypes = requestAssignment.getType() == Assignment::AllTypes; bool assignmentTypesMatch = assignment->getType() == requestAssignment.getType(); - bool nietherHasPool = assignment->getPool().isEmpty() && requestAssignment.getPool().isEmpty(); + bool neitherHasPool = assignment->getPool().isEmpty() && requestAssignment.getPool().isEmpty(); bool assignmentPoolsMatch = assignment->getPool() == requestAssignment.getPool(); - if ((requestIsAllTypes || assignmentTypesMatch) && (nietherHasPool || assignmentPoolsMatch)) { + if ((requestIsAllTypes || assignmentTypesMatch) && (neitherHasPool || assignmentPoolsMatch)) { // remove the assignment from the queue SharedAssignmentPointer deployableAssignment = _unfulfilledAssignments.takeAt(sharedAssignment diff --git a/domain-server/src/PendingAssignedNodeData.cpp b/domain-server/src/PendingAssignedNodeData.cpp index 21b3aa4ca4..c4b47fd254 100644 --- a/domain-server/src/PendingAssignedNodeData.cpp +++ b/domain-server/src/PendingAssignedNodeData.cpp @@ -11,9 +11,12 @@ #include "PendingAssignedNodeData.h" -PendingAssignedNodeData::PendingAssignedNodeData(const QUuid& assignmentUUID, const QUuid& walletUUID) : +PendingAssignedNodeData::PendingAssignedNodeData(const QUuid& assignmentUUID, const QUuid& walletUUID, + bool canAdjustLocks, bool canRez) : _assignmentUUID(assignmentUUID), - _walletUUID(walletUUID) + _walletUUID(walletUUID), + _canAdjustLocks(canAdjustLocks), + _canRez(canRez) { -} \ No newline at end of file +} diff --git a/domain-server/src/PendingAssignedNodeData.h b/domain-server/src/PendingAssignedNodeData.h index 93d99a6f8f..17f94d2225 100644 --- a/domain-server/src/PendingAssignedNodeData.h +++ b/domain-server/src/PendingAssignedNodeData.h @@ -18,16 +18,25 @@ class PendingAssignedNodeData : public QObject { Q_OBJECT public: - PendingAssignedNodeData(const QUuid& assignmentUUID, const QUuid& walletUUID); + PendingAssignedNodeData(const QUuid& assignmentUUID, const QUuid& walletUUID, bool canAdjustLocks, bool canRez); void setAssignmentUUID(const QUuid& assignmentUUID) { _assignmentUUID = assignmentUUID; } const QUuid& getAssignmentUUID() const { return _assignmentUUID; } void setWalletUUID(const QUuid& walletUUID) { _walletUUID = walletUUID; } const QUuid& getWalletUUID() const { return _walletUUID; } + + void setCanAdjustLocks(bool canAdjustLocks) { _canAdjustLocks = canAdjustLocks; } + bool getCanAdjustLocks() { return _canAdjustLocks; } + + void setCanRez(bool canRez) { _canRez = canRez; } + bool getCanRez() { return _canRez; } + private: QUuid _assignmentUUID; QUuid _walletUUID; + bool _canAdjustLocks = false; /// will this node be allowed to adjust locks on entities? + bool _canRez = false; /// will this node be allowed to rez in new entities? }; -#endif // hifi_PendingAssignedNodeData_h \ No newline at end of file +#endif // hifi_PendingAssignedNodeData_h diff --git a/libraries/networking/src/Assignment.cpp b/libraries/networking/src/Assignment.cpp index 944041730e..560bce3b91 100644 --- a/libraries/networking/src/Assignment.cpp +++ b/libraries/networking/src/Assignment.cpp @@ -153,6 +153,8 @@ QDataStream& operator<<(QDataStream &out, const Assignment& assignment) { if (assignment._command == Assignment::RequestCommand) { out << assignment._walletUUID; } + + out << assignment._canAdjustLocks << assignment._canRez; return out; } @@ -167,6 +169,8 @@ QDataStream& operator>>(QDataStream &in, Assignment& assignment) { if (assignment._command == Assignment::RequestCommand) { in >> assignment._walletUUID; } - + + in >> assignment._canAdjustLocks >> assignment._canRez; + return in; } diff --git a/libraries/networking/src/NodeData.h b/libraries/networking/src/NodeData.h index b865e444a9..e5e7925280 100644 --- a/libraries/networking/src/NodeData.h +++ b/libraries/networking/src/NodeData.h @@ -26,8 +26,18 @@ public: QMutex& getMutex() { return _mutex; } + void setCanAdjustLocks(bool canAdjustLocks) { _canAdjustLocks = canAdjustLocks; } + bool getCanAdjustLocks() { return _canAdjustLocks; } + + void setCanRez(bool canRez) { _canRez = canRez; } + bool getCanRez() { return _canRez; } + private: QMutex _mutex; + +protected: + bool _canAdjustLocks = false; /// will this node be allowed to adjust locks on entities? + bool _canRez = false; /// will this node be allowed to rez in new entities? }; #endif // hifi_NodeData_h From 32f91a86e7c924f5090d8232b216a80ad0add3be Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Mon, 27 Apr 2015 15:43:47 -0700 Subject: [PATCH 02/13] remove some unneeded code --- domain-server/src/DomainServer.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index 14dea70c5c..5090978a72 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -505,10 +505,6 @@ void DomainServer::populateStaticScriptedAssignmentsFromSettings() { scriptPool); scriptAssignment->setPayload(scriptURL.toUtf8()); - // we want a script added by the domain owner to be able to do what it wants with entities. - scriptAssignment->setCanRez(true); - scriptAssignment->setCanAdjustLocks(true); - // add it to static hash so we know we have to keep giving it back out addStaticAssignmentToAssignmentHash(scriptAssignment); } From 38ba0ab3526d8b87890d2b9e0d38ed41ff7b426d Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 28 Apr 2015 09:18:00 -0700 Subject: [PATCH 03/13] remove useless added code --- domain-server/src/DomainServer.cpp | 6 +----- domain-server/src/PendingAssignedNodeData.cpp | 7 ++----- domain-server/src/PendingAssignedNodeData.h | 10 +--------- libraries/networking/src/Assignment.cpp | 4 ---- libraries/networking/src/NodeData.h | 10 ---------- 5 files changed, 4 insertions(+), 33 deletions(-) diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index 5090978a72..1ddf1cb7db 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -676,8 +676,6 @@ void DomainServer::handleConnectRequest(const QByteArray& packet, const HifiSock nodeData->setWalletUUID(pendingAssigneeData->getWalletUUID()); // always allow assignment clients to create and destroy entities - nodeData->setCanAdjustLocks(true); - nodeData->setCanRez(true); newNode->setCanAdjustLocks(true); newNode->setCanRez(true); @@ -1058,9 +1056,7 @@ void DomainServer::readAvailableDatagrams() { // add the information for that deployed assignment to the hash of pending assigned nodes PendingAssignedNodeData* pendingNodeData = new PendingAssignedNodeData(assignmentToDeploy->getUUID(), - requestAssignment.getWalletUUID(), - true, true - ); + requestAssignment.getWalletUUID()); _pendingAssignedNodes.insert(uniqueAssignment.getUUID(), pendingNodeData); } else { if (requestAssignment.getType() != Assignment::AgentType diff --git a/domain-server/src/PendingAssignedNodeData.cpp b/domain-server/src/PendingAssignedNodeData.cpp index c4b47fd254..be24498d70 100644 --- a/domain-server/src/PendingAssignedNodeData.cpp +++ b/domain-server/src/PendingAssignedNodeData.cpp @@ -11,12 +11,9 @@ #include "PendingAssignedNodeData.h" -PendingAssignedNodeData::PendingAssignedNodeData(const QUuid& assignmentUUID, const QUuid& walletUUID, - bool canAdjustLocks, bool canRez) : +PendingAssignedNodeData::PendingAssignedNodeData(const QUuid& assignmentUUID, const QUuid& walletUUID) : _assignmentUUID(assignmentUUID), - _walletUUID(walletUUID), - _canAdjustLocks(canAdjustLocks), - _canRez(canRez) + _walletUUID(walletUUID) { } diff --git a/domain-server/src/PendingAssignedNodeData.h b/domain-server/src/PendingAssignedNodeData.h index 17f94d2225..9daa7822c3 100644 --- a/domain-server/src/PendingAssignedNodeData.h +++ b/domain-server/src/PendingAssignedNodeData.h @@ -18,7 +18,7 @@ class PendingAssignedNodeData : public QObject { Q_OBJECT public: - PendingAssignedNodeData(const QUuid& assignmentUUID, const QUuid& walletUUID, bool canAdjustLocks, bool canRez); + PendingAssignedNodeData(const QUuid& assignmentUUID, const QUuid& walletUUID); void setAssignmentUUID(const QUuid& assignmentUUID) { _assignmentUUID = assignmentUUID; } const QUuid& getAssignmentUUID() const { return _assignmentUUID; } @@ -26,17 +26,9 @@ public: void setWalletUUID(const QUuid& walletUUID) { _walletUUID = walletUUID; } const QUuid& getWalletUUID() const { return _walletUUID; } - void setCanAdjustLocks(bool canAdjustLocks) { _canAdjustLocks = canAdjustLocks; } - bool getCanAdjustLocks() { return _canAdjustLocks; } - - void setCanRez(bool canRez) { _canRez = canRez; } - bool getCanRez() { return _canRez; } - private: QUuid _assignmentUUID; QUuid _walletUUID; - bool _canAdjustLocks = false; /// will this node be allowed to adjust locks on entities? - bool _canRez = false; /// will this node be allowed to rez in new entities? }; #endif // hifi_PendingAssignedNodeData_h diff --git a/libraries/networking/src/Assignment.cpp b/libraries/networking/src/Assignment.cpp index 560bce3b91..027cf8aba5 100644 --- a/libraries/networking/src/Assignment.cpp +++ b/libraries/networking/src/Assignment.cpp @@ -153,8 +153,6 @@ QDataStream& operator<<(QDataStream &out, const Assignment& assignment) { if (assignment._command == Assignment::RequestCommand) { out << assignment._walletUUID; } - - out << assignment._canAdjustLocks << assignment._canRez; return out; } @@ -170,7 +168,5 @@ QDataStream& operator>>(QDataStream &in, Assignment& assignment) { in >> assignment._walletUUID; } - in >> assignment._canAdjustLocks >> assignment._canRez; - return in; } diff --git a/libraries/networking/src/NodeData.h b/libraries/networking/src/NodeData.h index e5e7925280..b865e444a9 100644 --- a/libraries/networking/src/NodeData.h +++ b/libraries/networking/src/NodeData.h @@ -26,18 +26,8 @@ public: QMutex& getMutex() { return _mutex; } - void setCanAdjustLocks(bool canAdjustLocks) { _canAdjustLocks = canAdjustLocks; } - bool getCanAdjustLocks() { return _canAdjustLocks; } - - void setCanRez(bool canRez) { _canRez = canRez; } - bool getCanRez() { return _canRez; } - private: QMutex _mutex; - -protected: - bool _canAdjustLocks = false; /// will this node be allowed to adjust locks on entities? - bool _canRez = false; /// will this node be allowed to rez in new entities? }; #endif // hifi_NodeData_h From 8db46d859eb21a6f1ab40a7f8cefbbef0d2f4678 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 28 Apr 2015 09:19:45 -0700 Subject: [PATCH 04/13] formatting --- domain-server/src/PendingAssignedNodeData.h | 1 - libraries/networking/src/Assignment.cpp | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/domain-server/src/PendingAssignedNodeData.h b/domain-server/src/PendingAssignedNodeData.h index 9daa7822c3..f2cac41607 100644 --- a/domain-server/src/PendingAssignedNodeData.h +++ b/domain-server/src/PendingAssignedNodeData.h @@ -25,7 +25,6 @@ public: void setWalletUUID(const QUuid& walletUUID) { _walletUUID = walletUUID; } const QUuid& getWalletUUID() const { return _walletUUID; } - private: QUuid _assignmentUUID; QUuid _walletUUID; diff --git a/libraries/networking/src/Assignment.cpp b/libraries/networking/src/Assignment.cpp index 027cf8aba5..944041730e 100644 --- a/libraries/networking/src/Assignment.cpp +++ b/libraries/networking/src/Assignment.cpp @@ -167,6 +167,6 @@ QDataStream& operator>>(QDataStream &in, Assignment& assignment) { if (assignment._command == Assignment::RequestCommand) { in >> assignment._walletUUID; } - + return in; } From be8764424ef58576254f564fbef42658d1166929 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 28 Apr 2015 09:20:38 -0700 Subject: [PATCH 05/13] formatting --- libraries/networking/src/Assignment.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/networking/src/Assignment.cpp b/libraries/networking/src/Assignment.cpp index 944041730e..a17ea8efd1 100644 --- a/libraries/networking/src/Assignment.cpp +++ b/libraries/networking/src/Assignment.cpp @@ -170,3 +170,5 @@ QDataStream& operator>>(QDataStream &in, Assignment& assignment) { return in; } + + From eb36bf3aa02a2d12607787b77d7f113d4c8a17ee Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 28 Apr 2015 09:23:00 -0700 Subject: [PATCH 06/13] formatting --- libraries/networking/src/Assignment.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/libraries/networking/src/Assignment.cpp b/libraries/networking/src/Assignment.cpp index a17ea8efd1..944041730e 100644 --- a/libraries/networking/src/Assignment.cpp +++ b/libraries/networking/src/Assignment.cpp @@ -170,5 +170,3 @@ QDataStream& operator>>(QDataStream &in, Assignment& assignment) { return in; } - - From dc0b033101e0493c1389ebec828e7286fa171517 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 28 Apr 2015 09:23:19 -0700 Subject: [PATCH 07/13] formatting --- libraries/networking/src/Assignment.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/networking/src/Assignment.cpp b/libraries/networking/src/Assignment.cpp index 944041730e..d93d1a15f1 100644 --- a/libraries/networking/src/Assignment.cpp +++ b/libraries/networking/src/Assignment.cpp @@ -170,3 +170,4 @@ QDataStream& operator>>(QDataStream &in, Assignment& assignment) { return in; } + From a1da96e9714023692f9fb4310f1c0391ca509d88 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 28 Apr 2015 09:23:30 -0700 Subject: [PATCH 08/13] formatting --- libraries/networking/src/Assignment.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/libraries/networking/src/Assignment.cpp b/libraries/networking/src/Assignment.cpp index d93d1a15f1..944041730e 100644 --- a/libraries/networking/src/Assignment.cpp +++ b/libraries/networking/src/Assignment.cpp @@ -170,4 +170,3 @@ QDataStream& operator>>(QDataStream &in, Assignment& assignment) { return in; } - From 30e78a37cd3c801a990450b6f60375011313cbed Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 28 Apr 2015 09:26:03 -0700 Subject: [PATCH 09/13] formatting --- domain-server/src/PendingAssignedNodeData.h | 1 + 1 file changed, 1 insertion(+) diff --git a/domain-server/src/PendingAssignedNodeData.h b/domain-server/src/PendingAssignedNodeData.h index f2cac41607..60878d4244 100644 --- a/domain-server/src/PendingAssignedNodeData.h +++ b/domain-server/src/PendingAssignedNodeData.h @@ -31,3 +31,4 @@ private: }; #endif // hifi_PendingAssignedNodeData_h + From 436fe03d105886d769c0d8a7f966994238854578 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 28 Apr 2015 09:26:20 -0700 Subject: [PATCH 10/13] formatting --- domain-server/src/PendingAssignedNodeData.h | 1 - 1 file changed, 1 deletion(-) diff --git a/domain-server/src/PendingAssignedNodeData.h b/domain-server/src/PendingAssignedNodeData.h index 60878d4244..f2cac41607 100644 --- a/domain-server/src/PendingAssignedNodeData.h +++ b/domain-server/src/PendingAssignedNodeData.h @@ -31,4 +31,3 @@ private: }; #endif // hifi_PendingAssignedNodeData_h - From 7aa2013473481063471135ad363f2c81efa7c873 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 28 Apr 2015 09:26:39 -0700 Subject: [PATCH 11/13] formatting --- domain-server/src/PendingAssignedNodeData.h | 1 + 1 file changed, 1 insertion(+) diff --git a/domain-server/src/PendingAssignedNodeData.h b/domain-server/src/PendingAssignedNodeData.h index f2cac41607..60878d4244 100644 --- a/domain-server/src/PendingAssignedNodeData.h +++ b/domain-server/src/PendingAssignedNodeData.h @@ -31,3 +31,4 @@ private: }; #endif // hifi_PendingAssignedNodeData_h + From 49783c1550498630b649f93c55e2a44889e7b02d Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 28 Apr 2015 09:28:17 -0700 Subject: [PATCH 12/13] formatting --- domain-server/src/PendingAssignedNodeData.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/domain-server/src/PendingAssignedNodeData.h b/domain-server/src/PendingAssignedNodeData.h index 60878d4244..93d99a6f8f 100644 --- a/domain-server/src/PendingAssignedNodeData.h +++ b/domain-server/src/PendingAssignedNodeData.h @@ -30,5 +30,4 @@ private: QUuid _walletUUID; }; -#endif // hifi_PendingAssignedNodeData_h - +#endif // hifi_PendingAssignedNodeData_h \ No newline at end of file From e6da5ea711743925868bcdaa26e79e8f78eeccdb Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 28 Apr 2015 09:28:42 -0700 Subject: [PATCH 13/13] formatting --- domain-server/src/PendingAssignedNodeData.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/domain-server/src/PendingAssignedNodeData.cpp b/domain-server/src/PendingAssignedNodeData.cpp index be24498d70..21b3aa4ca4 100644 --- a/domain-server/src/PendingAssignedNodeData.cpp +++ b/domain-server/src/PendingAssignedNodeData.cpp @@ -16,4 +16,4 @@ PendingAssignedNodeData::PendingAssignedNodeData(const QUuid& assignmentUUID, co _walletUUID(walletUUID) { -} +} \ No newline at end of file