Fix:Cannot drag inventory from child prim into inventory http://opensimulator.org/mantis/view.php?id=5569

xassetservice
PixelTomsen 2012-02-21 19:37:14 +01:00 committed by Melanie
parent a27e5a9c95
commit 15ce73caca
1 changed files with 8 additions and 4 deletions

View File

@ -1144,6 +1144,11 @@ namespace OpenSim.Region.Framework.Scenes
return; return;
} }
UUID partUUID = part.UUID;
SceneObjectGroup group = part.ParentGroup;
if (group != null)
partUUID = group.RootPart.UUID;
TaskInventoryItem taskItem = part.Inventory.GetInventoryItem(itemId); TaskInventoryItem taskItem = part.Inventory.GetInventoryItem(itemId);
if (null == taskItem) if (null == taskItem)
@ -1155,19 +1160,18 @@ namespace OpenSim.Region.Framework.Scenes
return; return;
} }
TaskInventoryItem item = part.Inventory.GetInventoryItem(itemId); if ((taskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
{ {
// If the item to be moved is no copy, we need to be able to // If the item to be moved is no copy, we need to be able to
// edit the prim. // edit the prim.
if (!Permissions.CanEditObjectInventory(part.UUID, remoteClient.AgentId)) if (!Permissions.CanEditObjectInventory(partUUID, remoteClient.AgentId))
return; return;
} }
else else
{ {
// If the item is copiable, then we just need to have perms // If the item is copiable, then we just need to have perms
// on it. The delete check is a pure rights check // on it. The delete check is a pure rights check
if (!Permissions.CanDeleteObject(part.UUID, remoteClient.AgentId)) if (!Permissions.CanDeleteObject(partUUID, remoteClient.AgentId))
return; return;
} }