From b03eeeb9f6331ed36c61f55aef847ce3b2db7ba4 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Sat, 22 Aug 2009 10:24:26 -0700
Subject: * Fixes mantis http://opensimulator.org/mantis/view.php?id=4044.
Turns out folders were never being removed from trash when they were singled
out for purging in trash. They were being removed when Trash was purged as a
whole. That behavior is now fixed for the new InventoryService set. * Removed
left-overs from AssetInventoryServer.
---
.../Inventory/BaseInventoryConnector.cs | 5 +++++
.../ServiceConnectorsOut/Inventory/HGInventoryBroker.cs | 17 +++++++++++++++++
.../Inventory/LocalInventoryServiceConnector.cs | 5 +++++
.../Inventory/RemoteInventoryServiceConnector.cs | 12 ++++++++++++
4 files changed, 39 insertions(+)
(limited to 'OpenSim/Region/CoreModules')
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/BaseInventoryConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/BaseInventoryConnector.cs
index d4cb616..bd32f3b 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/BaseInventoryConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/BaseInventoryConnector.cs
@@ -139,6 +139,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
public abstract bool MoveFolder(InventoryFolderBase folder);
///
+ /// Delete a list of inventory folders (from trash)
+ ///
+ public abstract bool DeleteFolders(UUID ownerID, List folderIDs);
+
+ ///
/// Purge an inventory folder of all its items and subfolders.
///
///
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
index 787c6c8..1c66254 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
@@ -330,6 +330,23 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
}
}
+ public override bool DeleteFolders(UUID ownerID, List folderIDs)
+ {
+ if (folderIDs == null)
+ return false;
+ if (folderIDs.Count == 0)
+ return false;
+
+ if (IsLocalGridUser(ownerID))
+ return m_GridService.DeleteFolders(ownerID, folderIDs);
+ else
+ {
+ UUID sessionID = GetSessionID(ownerID);
+ string uri = GetUserInventoryURI(ownerID) + "/" + ownerID.ToString();
+ return m_HGService.DeleteFolders(uri, folderIDs, sessionID);
+ }
+ }
+
public override bool MoveFolder(InventoryFolderBase folder)
{
if (folder == null)
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
index e6edcf2..66d11dd 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
@@ -258,6 +258,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
return m_InventoryService.MoveFolder(folder);
}
+ public override bool DeleteFolders(UUID ownerID, List folderIDs)
+ {
+ return m_InventoryService.DeleteFolders(ownerID, folderIDs);
+ }
+
///
/// Purge an inventory folder of all its items and subfolders.
///
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs
index 201442c..0d32c77 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs
@@ -243,6 +243,18 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
return m_RemoteConnector.MoveFolder(folder.Owner.ToString(), folder, sessionID);
}
+ public override bool DeleteFolders(UUID ownerID, List folderIDs)
+ {
+ if (folderIDs == null)
+ return false;
+ if (folderIDs.Count == 0)
+ return false;
+
+ UUID sessionID = GetSessionID(ownerID);
+ return m_RemoteConnector.DeleteFolders(ownerID.ToString(), folderIDs, sessionID);
+ }
+
+
public override bool PurgeFolder(InventoryFolderBase folder)
{
if (folder == null)
--
cgit v1.1