aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs3
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs22
2 files changed, 19 insertions, 6 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
index 58c396c..b0555da 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
@@ -131,7 +131,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
131 return ret; 131 return ret;
132 } 132 }
133 133
134 public override UUID DeleteToInventory(DeRezAction action, UUID folderID, 134 // DO NOT OVERRIDE THIS METHOD
135 public virtual UUID DeleteToInventory(DeRezAction action, UUID folderID,
135 SceneObjectGroup objectGroup, IClientAPI remoteClient) 136 SceneObjectGroup objectGroup, IClientAPI remoteClient)
136 { 137 {
137 UUID assetID = base.DeleteToInventory(action, folderID, new List<SceneObjectGroup>() {objectGroup}, remoteClient); 138 UUID assetID = base.DeleteToInventory(action, folderID, new List<SceneObjectGroup>() {objectGroup}, remoteClient);
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 9278164..f9da341 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1574,13 +1574,25 @@ namespace OpenSim.Region.Framework.Scenes
1574 // for when deleting the object from it 1574 // for when deleting the object from it
1575 ForceSceneObjectBackup(grp); 1575 ForceSceneObjectBackup(grp);
1576 1576
1577 if (!Permissions.CanTakeCopyObject(grp.UUID, remoteClient.AgentId)) 1577 if (remoteClient == null)
1578 {
1579 // Autoreturn has a null client. Nothing else does. So
1580 // allow only returns
1581 if (action != DeRezAction.Return)
1582 return;
1583
1578 permissionToTakeCopy = false; 1584 permissionToTakeCopy = false;
1579 if (!Permissions.CanTakeObject(grp.UUID, remoteClient.AgentId)) 1585 }
1580 permissionToTake = false; 1586 else
1587 {
1588 if (!Permissions.CanTakeCopyObject(grp.UUID, remoteClient.AgentId))
1589 permissionToTakeCopy = false;
1590 if (!Permissions.CanTakeObject(grp.UUID, remoteClient.AgentId))
1591 permissionToTake = false;
1581 1592
1582 if (!Permissions.CanDeleteObject(grp.UUID, remoteClient.AgentId)) 1593 if (!Permissions.CanDeleteObject(grp.UUID, remoteClient.AgentId))
1583 permissionToDelete = false; 1594 permissionToDelete = false;
1595 }
1584 1596
1585 } 1597 }
1586 1598