diff options
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 22 |
1 files changed, 17 insertions, 5 deletions
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 | ||