aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs10
1 files changed, 10 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index c4a42bc..b4771fd 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -556,6 +556,9 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
556 556
557 if (remoteClient != null && (remoteClient.AgentId != so.RootPart.OwnerID) && m_Scene.Permissions.PropagatePermissions()) 557 if (remoteClient != null && (remoteClient.AgentId != so.RootPart.OwnerID) && m_Scene.Permissions.PropagatePermissions())
558 { 558 {
559 // Changing ownership, so apply the "Next Owner" permissions to all of the
560 // inventory item's permissions.
561
559 uint perms = effectivePerms; 562 uint perms = effectivePerms;
560 PermissionsUtil.ApplyFoldedPermissions(effectivePerms, ref perms); 563 PermissionsUtil.ApplyFoldedPermissions(effectivePerms, ref perms);
561 564
@@ -570,6 +573,13 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
570 } 573 }
571 else 574 else
572 { 575 {
576 // Not changing ownership.
577 // In this case we apply the permissions in the object's items ONLY to the inventory
578 // item's "Next Owner" permissions, but NOT to its "Current", "Base", etc. permissions.
579 // E.g., if the object contains a No-Transfer item then the item's "Next Owner"
580 // permissions are also No-Transfer.
581 PermissionsUtil.ApplyFoldedPermissions(effectivePerms, ref allObjectsNextOwnerPerms);
582
573 item.BasePermissions = effectivePerms; 583 item.BasePermissions = effectivePerms;
574 item.CurrentPermissions = effectivePerms; 584 item.CurrentPermissions = effectivePerms;
575 item.NextPermissions = allObjectsNextOwnerPerms & effectivePerms; 585 item.NextPermissions = allObjectsNextOwnerPerms & effectivePerms;