aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs22
1 files changed, 19 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index e61132e..167e166 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1592,16 +1592,32 @@ namespace OpenSim.Region.Framework.Scenes
1592 // So that we know the database is upto date, 1592 // So that we know the database is upto date,
1593 // for when deleting the object from it 1593 // for when deleting the object from it
1594 ForceSceneObjectBackup(grp); 1594 ForceSceneObjectBackup(grp);
1595 if (remoteClient != null) 1595
1596 if (remoteClient == null)
1597 {
1598 // Autoreturn has a null client. Nothing else does. So
1599 // allow only returns
1600 if (action != DeRezAction.Return)
1601 return;
1602
1603 permissionToTakeCopy = false;
1604 }
1605 else
1596 { 1606 {
1597 if (!Permissions.CanTakeCopyObject(grp.UUID, remoteClient.AgentId)) 1607 if (action == DeRezAction.TakeCopy)
1608 {
1609 if (!Permissions.CanTakeCopyObject(grp.UUID, remoteClient.AgentId))
1610 permissionToTakeCopy = false;
1611 }
1612 else
1613 {
1598 permissionToTakeCopy = false; 1614 permissionToTakeCopy = false;
1615 }
1599 if (!Permissions.CanTakeObject(grp.UUID, remoteClient.AgentId)) 1616 if (!Permissions.CanTakeObject(grp.UUID, remoteClient.AgentId))
1600 permissionToTake = false; 1617 permissionToTake = false;
1601 1618
1602 if (!Permissions.CanDeleteObject(grp.UUID, remoteClient.AgentId)) 1619 if (!Permissions.CanDeleteObject(grp.UUID, remoteClient.AgentId))
1603 permissionToDelete = false; 1620 permissionToDelete = false;
1604
1605 } 1621 }
1606 } 1622 }
1607 1623