aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework')
-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 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
1144 return; 1144 return;
1145 } 1145 }
1146 1146
1147 UUID partUUID = part.UUID;
1148 SceneObjectGroup group = part.ParentGroup;
1149 if (group != null)
1150 partUUID = group.RootPart.UUID;
1151
1147 TaskInventoryItem taskItem = part.Inventory.GetInventoryItem(itemId); 1152 TaskInventoryItem taskItem = part.Inventory.GetInventoryItem(itemId);
1148 1153
1149 if (null == taskItem) 1154 if (null == taskItem)
@@ -1155,19 +1160,18 @@ namespace OpenSim.Region.Framework.Scenes
1155 return; 1160 return;
1156 } 1161 }
1157 1162
1158 TaskInventoryItem item = part.Inventory.GetInventoryItem(itemId); 1163 if ((taskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
1159 if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
1160 { 1164 {
1161 // If the item to be moved is no copy, we need to be able to 1165 // If the item to be moved is no copy, we need to be able to
1162 // edit the prim. 1166 // edit the prim.
1163 if (!Permissions.CanEditObjectInventory(part.UUID, remoteClient.AgentId)) 1167 if (!Permissions.CanEditObjectInventory(partUUID, remoteClient.AgentId))
1164 return; 1168 return;
1165 } 1169 }
1166 else 1170 else
1167 { 1171 {
1168 // If the item is copiable, then we just need to have perms 1172 // If the item is copiable, then we just need to have perms
1169 // on it. The delete check is a pure rights check 1173 // on it. The delete check is a pure rights check
1170 if (!Permissions.CanDeleteObject(part.UUID, remoteClient.AgentId)) 1174 if (!Permissions.CanDeleteObject(partUUID, remoteClient.AgentId))
1171 return; 1175 return;
1172 } 1176 }
1173 1177