aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs12
1 files changed, 8 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index e7a3b42..6031697 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1151,6 +1151,11 @@ namespace OpenSim.Region.Framework.Scenes
1151 return; 1151 return;
1152 } 1152 }
1153 1153
1154 UUID partUUID = part.UUID;
1155 SceneObjectGroup group = part.ParentGroup;
1156 if (group != null)
1157 partUUID = group.RootPart.UUID;
1158
1154 TaskInventoryItem taskItem = part.Inventory.GetInventoryItem(itemId); 1159 TaskInventoryItem taskItem = part.Inventory.GetInventoryItem(itemId);
1155 1160
1156 if (null == taskItem) 1161 if (null == taskItem)
@@ -1162,19 +1167,18 @@ namespace OpenSim.Region.Framework.Scenes
1162 return; 1167 return;
1163 } 1168 }
1164 1169
1165 TaskInventoryItem item = part.Inventory.GetInventoryItem(itemId); 1170 if ((taskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
1166 if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
1167 { 1171 {
1168 // If the item to be moved is no copy, we need to be able to 1172 // If the item to be moved is no copy, we need to be able to
1169 // edit the prim. 1173 // edit the prim.
1170 if (!Permissions.CanEditObjectInventory(part.UUID, remoteClient.AgentId)) 1174 if (!Permissions.CanEditObjectInventory(partUUID, remoteClient.AgentId))
1171 return; 1175 return;
1172 } 1176 }
1173 else 1177 else
1174 { 1178 {
1175 // If the item is copiable, then we just need to have perms 1179 // If the item is copiable, then we just need to have perms
1176 // on it. The delete check is a pure rights check 1180 // on it. The delete check is a pure rights check
1177 if (!Permissions.CanDeleteObject(part.UUID, remoteClient.AgentId)) 1181 if (!Permissions.CanDeleteObject(partUUID, remoteClient.AgentId))
1178 return; 1182 return;
1179 } 1183 }
1180 1184