From ea8f3c83bf96453e8223d918933d5708fa49a3cc Mon Sep 17 00:00:00 2001
From: Melanie Thielker
Date: Mon, 4 Jul 2016 03:35:48 +0100
Subject: Finally remove the requirement for an InventoryItem/FolderBase object
to be passed into inventory queries. This makes the API more homogenous and
also will more clearly show coding errors related to HG inventory where the
.Owner field has a meaning for a query but wasn't always set.
---
.../EntityTransfer/HGEntityTransferModule.cs | 3 +--
.../InventoryAccess/HGInventoryAccessModule.cs | 4 +---
.../InventoryAccess/InventoryAccessModule.cs | 19 ++++++-------------
.../Framework/Library/LocalInventoryService.cs | 11 +++--------
4 files changed, 11 insertions(+), 26 deletions(-)
(limited to 'OpenSim/Region/CoreModules/Framework')
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
index dfc880a..a9aaf12 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
@@ -95,8 +95,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
foreach (AvatarAttachment att in a.GetAttachments())
{
- InventoryItemBase item = new InventoryItemBase(att.ItemID, account.PrincipalID);
- item = Scene.InventoryService.GetItem(item);
+ InventoryItemBase item = Scene.InventoryService.GetItem(account.PrincipalID, att.ItemID);
if (item != null)
a.SetAttachment(att.AttachPoint, att.ItemID, item.AssetID);
else
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
index 06a8f25..4119f90 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
@@ -314,9 +314,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
//if (fromTaskID.Equals(UUID.Zero))
//{
- InventoryItemBase item = new InventoryItemBase(itemID);
- item.Owner = remoteClient.AgentId;
- item = m_Scene.InventoryService.GetItem(item);
+ InventoryItemBase item = m_Scene.InventoryService.GetItem(remoteClient.AgentId, itemID);
//if (item == null)
//{ // Fetch the item
// item = new InventoryItemBase();
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index 64233d5..781b9ff 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -184,8 +184,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
if (!m_Scene.Permissions.CanCreateUserInventory(invType, remoteClient.AgentId))
return;
- InventoryFolderBase f = new InventoryFolderBase(folderID, remoteClient.AgentId);
- InventoryFolderBase folder = m_Scene.InventoryService.GetFolder(f);
+ InventoryFolderBase folder = m_Scene.InventoryService.GetFolder(remoteClient.AgentId, folderID);
if (folder == null && Enum.IsDefined(typeof(FolderType), (sbyte)invType))
{
@@ -260,8 +259,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
///
public virtual UUID CapsUpdateInventoryItemAsset(IClientAPI remoteClient, UUID itemID, byte[] data)
{
- InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId);
- item = m_Scene.InventoryService.GetItem(item);
+ InventoryItemBase item = m_Scene.InventoryService.GetItem(remoteClient.AgentId, itemID);
if (item.Owner != remoteClient.AgentId)
return UUID.Zero;
@@ -719,8 +717,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
if (DeRezAction.SaveToExistingUserInventoryItem == action)
{
- item = new InventoryItemBase(so.RootPart.FromUserInventoryItemID, userID);
- item = m_Scene.InventoryService.GetItem(item);
+ item = m_Scene.InventoryService.GetItem(userID, so.RootPart.FromUserInventoryItemID);
//item = userInfo.RootFolder.FindItem(
// objectGroup.RootPart.FromUserInventoryItemID);
@@ -792,9 +789,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
{
if (so.FromFolderID != UUID.Zero && so.RootPart.OwnerID == remoteClient.AgentId)
{
- InventoryFolderBase f = new InventoryFolderBase(so.FromFolderID, userID);
- if (f != null)
- folder = m_Scene.InventoryService.GetFolder(f);
+ folder = m_Scene.InventoryService.GetFolder(userID, so.FromFolderID);
if(folder.Type == 14 || folder.Type == 16)
{
@@ -830,8 +825,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment)
{
// m_log.DebugFormat("[INVENTORY ACCESS MODULE]: RezObject for {0}, item {1}", remoteClient.Name, itemID);
- InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId);
- item = m_Scene.InventoryService.GetItem(item);
+ InventoryItemBase item = m_Scene.InventoryService.GetItem(remoteClient.AgentId, itemID);
if (item == null)
{
@@ -1289,8 +1283,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
protected virtual InventoryItemBase GetItem(UUID agentID, UUID itemID)
{
IInventoryService invService = m_Scene.RequestModuleInterface();
- InventoryItemBase item = new InventoryItemBase(itemID, agentID);
- item = invService.GetItem(item);
+ InventoryItemBase item = invService.GetItem(agentID, itemID);
if (item != null && item.CreatorData != null && item.CreatorData != string.Empty)
UserManagementModule.AddUser(item.CreatorIdAsUuid, item.CreatorData);
diff --git a/OpenSim/Region/CoreModules/Framework/Library/LocalInventoryService.cs b/OpenSim/Region/CoreModules/Framework/Library/LocalInventoryService.cs
index e1e1838..21e00b2 100644
--- a/OpenSim/Region/CoreModules/Framework/Library/LocalInventoryService.cs
+++ b/OpenSim/Region/CoreModules/Framework/Library/LocalInventoryService.cs
@@ -103,13 +103,8 @@ namespace OpenSim.Region.CoreModules.Framework.Library
{
InventoryItemBase[] itemColl = new InventoryItemBase[itemIDs.Length];
int i = 0;
- InventoryItemBase item = new InventoryItemBase();
- item.Owner = principalID;
foreach (UUID fid in itemIDs)
- {
- item.ID = fid;
- itemColl[i++] = GetItem(item);
- }
+ itemColl[i++] = GetItem(principalID, fid);
return itemColl;
}
@@ -239,14 +234,14 @@ namespace OpenSim.Region.CoreModules.Framework.Library
///
///
///
- public InventoryItemBase GetItem(InventoryItemBase item) { return null; }
+ public InventoryItemBase GetItem(UUID principalID, UUID itemID) { return null; }
///
/// Get a folder, given by its UUID
///
///
///
- public InventoryFolderBase GetFolder(InventoryFolderBase folder) { return null; }
+ public InventoryFolderBase GetFolder(UUID principalID, UUID folderID) { return null; }
///
/// Does the given user have an inventory structure?
--
cgit v1.1