aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs22
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