History

Ignore Entities.addEntity() for avatar entities if don't have permission

David Rowe committed 5 years ago

Commit e23251d1 parent 0adfd8b1 file · +9 −1Browse files

Showing the changes to libraries/entities/src/EntityScriptingInterface.cpp (1 of 1 file). Show all

Unified · Split

libraries/entities/src/EntityScriptingInterface.cpp+9−1
@@ -487,6 +487,15 @@ QUuid EntityScriptingInterface::addEntityInternal(const EntityItemProperties& pr · 486 unmodified lines
487487
488488 _activityTracking.addedEntityCount++;
489489
490+ auto nodeList = DependencyManager::get<NodeList>();
491+
492+ if (entityHostType == entity::HostType::AVATAR && !nodeList->getThisNodeCanRezAvatarEntities()) {
493+ qCDebug(entities) << "Ignoring addEntity() because don't have canRezAvatarEntities permission on domain";
494+ // Only need to intercept methods that may add an avatar entity because avatar entities are removed from the tree when
495+ // user doesn't have canRezAvatarEntities permission.
496+ return QUuid();
497+ }
498+
490499 EntityItemProperties propertiesWithSimID = properties;
491500 propertiesWithSimID.setEntityHostType(entityHostType);
492501 if (entityHostType == entity::HostType::AVATAR) {
@@ -499,7 +508,6 @@ QUuid EntityScriptingInterface::addEntityInternal(const EntityItemProperties& pr · 6 unmodified lines
499508 }
500509
501510 // the created time will be set in EntityTree::addEntity by recordCreationTime()
502− auto nodeList = DependencyManager::get<NodeList>();
503511 auto sessionID = nodeList->getSessionUUID();
504512 propertiesWithSimID.setLastEditedBy(sessionID);
505513