mirror of
https://github.com/opensim/opensim.git
synced 2026-08-09 02:36:00 +08:00
* 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.
This commit is contained in:
@@ -201,6 +201,19 @@ namespace OpenSim.Services.Connectors.Inventory
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool DeleteFolders(string id, List<UUID> folders, UUID sessionID)
|
||||
{
|
||||
string url = string.Empty;
|
||||
string userID = string.Empty;
|
||||
|
||||
if (StringToUrlAndUserID(id, out url, out userID))
|
||||
{
|
||||
ISessionAuthInventoryService connector = GetConnector(url);
|
||||
return connector.DeleteFolders(userID, folders, sessionID);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool PurgeFolder(string id, InventoryFolderBase folder, UUID sessionID)
|
||||
{
|
||||
string url = string.Empty;
|
||||
|
||||
@@ -88,6 +88,11 @@ namespace OpenSim.Services.Connectors
|
||||
/// <returns>true if the folder was successfully moved</returns>
|
||||
bool MoveFolder(string userID, InventoryFolderBase folder, UUID session_id);
|
||||
|
||||
/// <summary>
|
||||
/// Delete a list of inventory folders (from trash)
|
||||
/// </summary>
|
||||
bool DeleteFolders(string userID, List<UUID> folders, UUID session_id);
|
||||
|
||||
/// <summary>
|
||||
/// Purge an inventory folder of all its items and subfolders.
|
||||
/// </summary>
|
||||
|
||||
@@ -308,6 +308,25 @@ namespace OpenSim.Services.Connectors
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool DeleteFolders(string userID, List<UUID> folderIDs, UUID sessionID)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<Guid> guids = new List<Guid>();
|
||||
foreach (UUID u in folderIDs)
|
||||
guids.Add(u.Guid);
|
||||
return SynchronousRestSessionObjectPoster<List<Guid>, bool>.BeginPostObject(
|
||||
"POST", m_ServerURI + "/DeleteFolders/", guids, sessionID.ToString(), userID);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat("[INVENTORY CONNECTOR]: Delete inventory folders operation failed, {0} {1}",
|
||||
e.Source, e.Message);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool MoveFolder(string userID, InventoryFolderBase folder, UUID sessionID)
|
||||
{
|
||||
try
|
||||
@@ -481,12 +500,12 @@ namespace OpenSim.Services.Connectors
|
||||
return null;
|
||||
}
|
||||
|
||||
public InventoryFolderBase QueryFolder(string userID, InventoryFolderBase item, UUID sessionID)
|
||||
public InventoryFolderBase QueryFolder(string userID, InventoryFolderBase folder, UUID sessionID)
|
||||
{
|
||||
try
|
||||
{
|
||||
return SynchronousRestSessionObjectPoster<InventoryFolderBase, InventoryFolderBase>.BeginPostObject(
|
||||
"POST", m_ServerURI + "/QueryFolder/", item, sessionID.ToString(), item.Owner.ToString());
|
||||
"POST", m_ServerURI + "/QueryFolder/", folder, sessionID.ToString(), userID);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
@@ -136,6 +136,12 @@ namespace OpenSim.Services.Connectors
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool DeleteFolders(UUID ownerID, List<UUID> folderIDs)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public bool PurgeFolder(InventoryFolderBase folder)
|
||||
{
|
||||
return false;
|
||||
|
||||
@@ -121,6 +121,14 @@ namespace OpenSim.Services.Interfaces
|
||||
/// <returns>true if the folder was successfully moved</returns>
|
||||
bool MoveFolder(InventoryFolderBase folder);
|
||||
|
||||
/// <summary>
|
||||
/// Delete an item from the user's inventory
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <returns>true if the item was successfully deleted</returns>
|
||||
//bool DeleteItem(InventoryItemBase item);
|
||||
bool DeleteFolders(UUID userID, List<UUID> folderIDs);
|
||||
|
||||
/// <summary>
|
||||
/// Purge an inventory folder of all its items and subfolders.
|
||||
/// </summary>
|
||||
|
||||
@@ -425,15 +425,27 @@ namespace OpenSim.Services.InventoryService
|
||||
return null;
|
||||
}
|
||||
|
||||
public virtual InventoryFolderBase GetFolder(InventoryFolderBase item)
|
||||
public virtual InventoryFolderBase GetFolder(InventoryFolderBase folder)
|
||||
{
|
||||
InventoryFolderBase result = m_Database.getInventoryFolder(item.ID);
|
||||
m_log.DebugFormat("[INVENTORY SERVICE]: GetFolder {0}", folder.ID);
|
||||
InventoryFolderBase result = m_Database.getInventoryFolder(folder.ID);
|
||||
if (result != null)
|
||||
return result;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public virtual bool DeleteFolders(UUID ownerID, List<UUID> folderIDs)
|
||||
{
|
||||
foreach (UUID id in folderIDs)
|
||||
{
|
||||
InventoryFolderBase folder = new InventoryFolderBase(id, ownerID);
|
||||
PurgeFolder(folder);
|
||||
m_Database.deleteInventoryFolder(id);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Purge a folder of all items items and subfolders.
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user