aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.Inventory.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs18
1 files changed, 6 insertions, 12 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index 590bea0..12095e5 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -1179,8 +1179,7 @@ namespace OpenSim.Region.Environment.Scenes
1179 destTaskItem.InvType = srcTaskItem.InvType; 1179 destTaskItem.InvType = srcTaskItem.InvType;
1180 destTaskItem.Type = srcTaskItem.Type; 1180 destTaskItem.Type = srcTaskItem.Type;
1181 1181
1182 destPart.AddInventoryItem(destTaskItem, part.OwnerID!=destPart.OwnerID 1182 destPart.AddInventoryItem(destTaskItem);
1183 && ExternalChecks.ExternalChecksPropagatePermissions());
1184 1183
1185 if ((srcTaskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0) 1184 if ((srcTaskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
1186 part.RemoveInventoryItem(itemId); 1185 part.RemoveInventoryItem(itemId);
@@ -1250,16 +1249,11 @@ namespace OpenSim.Region.Environment.Scenes
1250 1249
1251 if (part != null) 1250 if (part != null)
1252 { 1251 {
1253 TaskInventoryItem currentItem = part.GetInventoryItem(itemID); 1252 if (!ExternalChecks.ExternalChecksCanEditObjectInventory(part.UUID, remoteClient.AgentId))
1254 bool allowInventoryDrop = (part.GetEffectiveObjectFlags()
1255 & (uint)PrimFlags.AllowInventoryDrop) != 0;
1256 // Explicity allow anyone to add to the inventory if the AllowInventoryDrop
1257 // flag has been set. Don't however let them update an item unless
1258 // they pass the external checks
1259 if (!ExternalChecks.ExternalChecksCanEditObjectInventory(part.UUID, remoteClient.AgentId)
1260 && (currentItem != null || !allowInventoryDrop ))
1261 return; 1253 return;
1262 1254
1255 TaskInventoryItem currentItem = part.GetInventoryItem(itemID);
1256
1263 if (currentItem == null) 1257 if (currentItem == null)
1264 { 1258 {
1265 UUID copyID = UUID.Random(); 1259 UUID copyID = UUID.Random();
@@ -1423,7 +1417,7 @@ namespace OpenSim.Region.Environment.Scenes
1423 taskItem.PermsMask = 0; 1417 taskItem.PermsMask = 0;
1424 taskItem.AssetID = asset.FullID; 1418 taskItem.AssetID = asset.FullID;
1425 1419
1426 part.AddInventoryItem(taskItem, false); 1420 part.AddInventoryItem(taskItem);
1427 part.GetProperties(remoteClient); 1421 part.GetProperties(remoteClient);
1428 1422
1429 part.CreateScriptInstance(taskItem, 0, false, DefaultScriptEngine, 0); 1423 part.CreateScriptInstance(taskItem, 0, false, DefaultScriptEngine, 0);
@@ -1518,7 +1512,7 @@ namespace OpenSim.Region.Environment.Scenes
1518 destTaskItem.InvType = srcTaskItem.InvType; 1512 destTaskItem.InvType = srcTaskItem.InvType;
1519 destTaskItem.Type = srcTaskItem.Type; 1513 destTaskItem.Type = srcTaskItem.Type;
1520 1514
1521 destPart.AddInventoryItemExclusive(destTaskItem, false); 1515 destPart.AddInventoryItemExclusive(destTaskItem);
1522 1516
1523 if (running > 0) 1517 if (running > 0)
1524 { 1518 {