Merge branch 'master' into careminster

avinationmerge
Melanie 2012-02-21 22:08:34 +00:00
commit dede31174e
1 changed files with 8 additions and 4 deletions

View File

@ -1151,6 +1151,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)
@ -1162,19 +1167,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;
} }