From 15ce73caca9ea6448e34b95d344cbbf5c9507f6d Mon Sep 17 00:00:00 2001 From: PixelTomsen Date: Tue, 21 Feb 2012 19:37:14 +0100 Subject: Fix:Cannot drag inventory from child prim into inventory http://opensimulator.org/mantis/view.php?id=5569 --- OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 6cc78b8..132f15d 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs @@ -1144,6 +1144,11 @@ namespace OpenSim.Region.Framework.Scenes return; } + UUID partUUID = part.UUID; + SceneObjectGroup group = part.ParentGroup; + if (group != null) + partUUID = group.RootPart.UUID; + TaskInventoryItem taskItem = part.Inventory.GetInventoryItem(itemId); if (null == taskItem) @@ -1155,19 +1160,18 @@ namespace OpenSim.Region.Framework.Scenes return; } - TaskInventoryItem item = part.Inventory.GetInventoryItem(itemId); - if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0) + if ((taskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0) { // If the item to be moved is no copy, we need to be able to // edit the prim. - if (!Permissions.CanEditObjectInventory(part.UUID, remoteClient.AgentId)) + if (!Permissions.CanEditObjectInventory(partUUID, remoteClient.AgentId)) return; } else { // If the item is copiable, then we just need to have perms // on it. The delete check is a pure rights check - if (!Permissions.CanDeleteObject(part.UUID, remoteClient.AgentId)) + if (!Permissions.CanDeleteObject(partUUID, remoteClient.AgentId)) return; } -- cgit v1.1