aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2013-05-01 21:35:50 +0100
committerMelanie2013-05-01 21:35:50 +0100
commitb26276c8c48a8cf4edb468b2fd428815034a6320 (patch)
treeadc2591ccaed9f68e072f6e460fcfcd12c8d7b89 /OpenSim
parentFix CAPS to work like they should - do not send caps to the viewer if they're... (diff)
downloadopensim-SC-b26276c8c48a8cf4edb468b2fd428815034a6320.zip
opensim-SC-b26276c8c48a8cf4edb468b2fd428815034a6320.tar.gz
opensim-SC-b26276c8c48a8cf4edb468b2fd428815034a6320.tar.bz2
opensim-SC-b26276c8c48a8cf4edb468b2fd428815034a6320.tar.xz
Fix the long standing bug of items being delivered to lost and found or trash when takig copy.
This bug was recently aggravated through the perms changes required for the export permission.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs5
1 files changed, 3 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index e0009bb..eb37626 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -646,11 +646,12 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
646 } 646 }
647 else 647 else
648 { 648 {
649 if (remoteClient == null || so.OwnerID != remoteClient.AgentId) 649 if (remoteClient == null || so.RootPart.OwnerID != remoteClient.AgentId)
650 { 650 {
651 // Taking copy of another person's item. Take to 651 // Taking copy of another person's item. Take to
652 // Objects folder. 652 // Objects folder.
653 folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.Object); 653 folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.Object);
654 so.FromFolderID = UUID.Zero;
654 } 655 }
655 else 656 else
656 { 657 {
@@ -666,7 +667,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
666 // 667 //
667 if (action == DeRezAction.Take || action == DeRezAction.TakeCopy) 668 if (action == DeRezAction.Take || action == DeRezAction.TakeCopy)
668 { 669 {
669 if (so.FromFolderID != UUID.Zero && userID == remoteClient.AgentId) 670 if (so.FromFolderID != UUID.Zero && so.RootPart.OwnerID == remoteClient.AgentId)
670 { 671 {
671 InventoryFolderBase f = new InventoryFolderBase(so.FromFolderID, userID); 672 InventoryFolderBase f = new InventoryFolderBase(so.FromFolderID, userID);
672 folder = m_Scene.InventoryService.GetFolder(f); 673 folder = m_Scene.InventoryService.GetFolder(f);