diff --git a/assignment-client/src/avatars/AvatarMixerClientData.cpp b/assignment-client/src/avatars/AvatarMixerClientData.cpp index ac4ad11ecc..7b1fa1ab57 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.cpp +++ b/assignment-client/src/avatars/AvatarMixerClientData.cpp @@ -271,10 +271,9 @@ void AvatarMixerClientData::processSetTraitsMessage(ReceivedMessage& message, } else { // Don't accept avatar entity data for distribution unless sender has rez permissions on the domain. // The sender shouldn't be sending avatar entity data, however this provides a back-up. + auto trait = message.read(traitSize); if (sendingNode.getCanRezAvatarEntities()) { - _avatar->processTraitInstance(traitType, instanceID, message.read(traitSize)); - } else { - message.read(traitSize); + _avatar->processTraitInstance(traitType, instanceID, trait); } instanceVersionRef = packetTraitVersion; @@ -301,8 +300,8 @@ void AvatarMixerClientData::emulateDeleteEntitiesTraitsMessage(const QListprocessDeletedTraitInstance(traitType, entityID); diff --git a/domain-server/resources/describe-settings.json b/domain-server/resources/describe-settings.json index 6d4dce8322..c72d2e65e7 100644 --- a/domain-server/resources/describe-settings.json +++ b/domain-server/resources/describe-settings.json @@ -338,7 +338,7 @@ "name": "standard_permissions", "type": "table", "label": "Domain-Wide User Permissions", - "help": "Indicate which types of users can have which domain-wide permissions.", + "help": "Indicate which types of users can have which domain-wide permissions.", "caption": "Standard Permissions", "can_add_new_rows": false, "groups": [ @@ -347,7 +347,7 @@ "span": 1 }, { - "label": "Permissions ?", + "label": "Permissions ?", "span": 12 } ], @@ -365,7 +365,7 @@ }, { "name": "id_can_rez_avatar_entities", - "label": "Rez Avatar Entities", + "label": "Avatar Entities", "type": "checkbox", "editable": true, "default": false @@ -492,7 +492,7 @@ "span": 1 }, { - "label": "Permissions ?", + "label": "Permissions ?", "span": 12 } ], @@ -535,7 +535,7 @@ }, { "name": "id_can_rez_avatar_entities", - "label": "Rez Avatar Entities", + "label": "Avatar Entities", "type": "checkbox", "editable": true, "default": false @@ -628,7 +628,7 @@ "span": 1 }, { - "label": "Permissions ?", + "label": "Permissions ?", "span": 12 } ], @@ -668,7 +668,7 @@ }, { "name": "id_can_rez_avatar_entities", - "label": "Rez Avatar Entities", + "label": "Avatar Entities", "type": "checkbox", "editable": true, "default": false @@ -756,7 +756,7 @@ "span": 1 }, { - "label": "Permissions ?", + "label": "Permissions ?", "span": 12 } ], @@ -774,7 +774,7 @@ }, { "name": "id_can_rez_avatar_entities", - "label": "Rez Avatar Entities", + "label": "Avatar Entities", "type": "checkbox", "editable": true, "default": false @@ -862,7 +862,7 @@ "span": 1 }, { - "label": "Permissions ?", + "label": "Permissions ?", "span": 12 } ], @@ -880,7 +880,7 @@ }, { "name": "id_can_rez_avatar_entities", - "label": "Rez Avatar Entities", + "label": "Avatar Entities", "type": "checkbox", "editable": true, "default": false @@ -968,7 +968,7 @@ "span": 1 }, { - "label": "Permissions ?", + "label": "Permissions ?", "span": 12 } ], @@ -986,7 +986,7 @@ }, { "name": "id_can_rez_avatar_entities", - "label": "Rez Avatar Entities", + "label": "Avatar Entities", "type": "checkbox", "editable": true, "default": false @@ -1074,7 +1074,7 @@ "span": 1 }, { - "label": "Permissions ?", + "label": "Permissions ?", "span": 12 } ], @@ -1092,7 +1092,7 @@ }, { "name": "id_can_rez_avatar_entities", - "label": "Rez Avatar Entities", + "label": "Avatar Entities", "type": "checkbox", "editable": true, "default": false diff --git a/libraries/networking/src/NodePermissions.cpp b/libraries/networking/src/NodePermissions.cpp index a218bf7dd4..2580a8d965 100644 --- a/libraries/networking/src/NodePermissions.cpp +++ b/libraries/networking/src/NodePermissions.cpp @@ -57,6 +57,7 @@ NodePermissions::NodePermissions(QMap perms) { permissions = NodePermissions::Permissions(); permissions |= perms["id_can_connect"].toBool() ? Permission::canConnectToDomain : Permission::none; + permissions |= perms["id_can_rez_avatar_entities"].toBool() ? Permission::canRezAvatarEntities : Permission::none; permissions |= perms["id_can_adjust_locks"].toBool() ? Permission::canAdjustLocks : Permission::none; permissions |= perms["id_can_rez"].toBool() ? Permission::canRezPermanentEntities : Permission::none; permissions |= perms["id_can_rez_tmp"].toBool() ? Permission::canRezTemporaryEntities : Permission::none; @@ -67,8 +68,8 @@ NodePermissions::NodePermissions(QMap perms) { Permission::canConnectPastMaxCapacity : Permission::none; permissions |= perms["id_can_kick"].toBool() ? Permission::canKick : Permission::none; permissions |= perms["id_can_replace_content"].toBool() ? Permission::canReplaceDomainContent : Permission::none; - permissions |= perms["id_can_get_and_set_private_user_data"].toBool() ? Permission::canGetAndSetPrivateUserData : Permission::none; - permissions |= perms["id_can_rez_avatar_entities"].toBool() ? Permission::canRezAvatarEntities : Permission::none; + permissions |= perms["id_can_get_and_set_private_user_data"].toBool() ? + Permission::canGetAndSetPrivateUserData : Permission::none; } QVariant NodePermissions::toVariant(QHash groupRanks) { @@ -87,6 +88,7 @@ QVariant NodePermissions::toVariant(QHash groupRanks) { } } values["id_can_connect"] = can(Permission::canConnectToDomain); + values["id_can_rez_avatar_entities"] = can(Permission::canRezAvatarEntities); values["id_can_adjust_locks"] = can(Permission::canAdjustLocks); values["id_can_rez"] = can(Permission::canRezPermanentEntities); values["id_can_rez_tmp"] = can(Permission::canRezTemporaryEntities); @@ -97,7 +99,6 @@ QVariant NodePermissions::toVariant(QHash groupRanks) { values["id_can_kick"] = can(Permission::canKick); values["id_can_replace_content"] = can(Permission::canReplaceDomainContent); values["id_can_get_and_set_private_user_data"] = can(Permission::canGetAndSetPrivateUserData); - values["id_can_rez_avatar_entities"] = can(Permission::canRezAvatarEntities); return QVariant(values); }