diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs index ca9669ad6c..86c24bcb5a 100644 --- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs +++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs @@ -316,9 +316,9 @@ namespace OpenSim.Framework.Communications.Cache /// /// /// - public void UpdateItem(LLUUID userID, InventoryItemBase itemInfo) + public void UpdateItem(InventoryItemBase itemInfo) { - if ((userID == UserProfile.ID) && HasInventory) + if (HasInventory) { m_commsManager.InventoryService.UpdateItem(itemInfo); } @@ -330,10 +330,10 @@ namespace OpenSim.Framework.Communications.Cache /// /// /// - public bool DeleteItem(LLUUID userID, InventoryItemBase item) + public bool DeleteItem(InventoryItemBase item) { bool result = false; - if ((userID == UserProfile.ID) && HasInventory) + if (HasInventory) { result = RootFolder.DeleteItem(item.ID); if (result) diff --git a/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AgentAssetsTransactions.cs b/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AgentAssetsTransactions.cs index 19d2913ed1..9a6b83a3e7 100644 --- a/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AgentAssetsTransactions.cs +++ b/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AgentAssetsTransactions.cs @@ -364,7 +364,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction m_userTransactions.Manager.MyScene.CommsManager.AssetCache.AddAsset(Asset); } - userInfo.UpdateItem(remoteClient.AgentId, item); + userInfo.UpdateItem(item); } } } diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index baca696d65..59c45fa11e 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs @@ -136,7 +136,7 @@ namespace OpenSim.Region.Environment.Scenes AssetCache.AddAsset(asset); item.AssetID = asset.FullID; - userInfo.UpdateItem(remoteClient.AgentId, item); + userInfo.UpdateItem(item); // remoteClient.SendInventoryItemCreateUpdate(item); if ((InventoryType) item.InvType == InventoryType.Notecard) @@ -294,7 +294,7 @@ namespace OpenSim.Region.Environment.Scenes item.SaleType = itemUpd.SaleType; item.Flags = itemUpd.Flags; - userInfo.UpdateItem(remoteClient.AgentId, item); + userInfo.UpdateItem(item); } else { @@ -486,7 +486,7 @@ namespace OpenSim.Region.Environment.Scenes item.Name = newName; } item.Folder = folderID; - userInfo.DeleteItem(remoteClient.AgentId, item); + userInfo.DeleteItem(item); // TODO: preserve current permissions? AddInventoryItem(remoteClient, item); @@ -630,11 +630,17 @@ namespace OpenSim.Region.Environment.Scenes InventoryItemBase item = userInfo.RootFolder.HasItem(itemID); if (item != null) { - userInfo.DeleteItem(remoteClient.AgentId, item); + userInfo.DeleteItem(item); } } } + /// + /// Removes an inventory folder. Although there is a packet in the Linden protocol for this, it may be + /// legacy and not currently used (purge folder is used to remove folders from trash instead). + /// + /// + /// private void RemoveInventoryFolder(IClientAPI remoteClient, LLUUID folderID) { CachedUserInfo userInfo @@ -648,10 +654,15 @@ namespace OpenSim.Region.Environment.Scenes if (userInfo.RootFolder != null) { InventoryItemBase folder = userInfo.RootFolder.HasItem(folderID); + if (folder != null) { + m_log.WarnFormat( + "[AGENT INVENTORY]: Remove folder not implemented in request by {0} {1} for {2}", + remoteClient.Name, remoteClient.AgentId, folderID); + // doesn't work just yet, commented out. will fix in next patch. - // userInfo.DeleteItem(remoteClient.AgentId, folder); + // userInfo.DeleteItem(folder); } } }