diff options
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs | 3 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 22 |
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 | ||