Merge branch 'master' of opensimulator.org:/var/git/opensim
commit
1d9e343b7e
|
@ -445,8 +445,7 @@ namespace OpenSim.Groups
|
|||
|
||||
UUID itemID = binBucketMap["item_id"].AsUUID();
|
||||
UUID ownerID = binBucketMap["owner_id"].AsUUID();
|
||||
item = new InventoryItemBase(itemID, ownerID);
|
||||
item = m_sceneList[0].InventoryService.GetItem(item);
|
||||
item = m_sceneList[0].InventoryService.GetItem(ownerID, itemID);
|
||||
}
|
||||
else
|
||||
m_log.DebugFormat("[Groups]: Received OSD with unexpected type: {0}", binBucketOSD.GetType());
|
||||
|
|
|
@ -2836,8 +2836,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
|||
if (wearable[0].ItemID != UUID.Zero)
|
||||
{
|
||||
// Get inventory item and copy it
|
||||
InventoryItemBase item = new InventoryItemBase(wearable[0].ItemID, source);
|
||||
item = inventoryService.GetItem(item);
|
||||
InventoryItemBase item = inventoryService.GetItem(source, wearable[0].ItemID);
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
|
@ -2890,8 +2889,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
|||
if (itemID != UUID.Zero)
|
||||
{
|
||||
// Get inventory item and copy it
|
||||
InventoryItemBase item = new InventoryItemBase(itemID, source);
|
||||
item = inventoryService.GetItem(item);
|
||||
InventoryItemBase item = inventoryService.GetItem(source, itemID);
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
|
|
|
@ -403,10 +403,7 @@ namespace OpenSim.Capabilities.Handlers
|
|||
return contents;
|
||||
}
|
||||
contents = fetchedContents;
|
||||
InventoryFolderBase containingFolder = new InventoryFolderBase();
|
||||
containingFolder.ID = folderID;
|
||||
containingFolder.Owner = agentID;
|
||||
containingFolder = m_InventoryService.GetFolder(containingFolder);
|
||||
InventoryFolderBase containingFolder = m_InventoryService.GetFolder(agentID, folderID);
|
||||
|
||||
if (containingFolder != null)
|
||||
{
|
||||
|
@ -429,7 +426,7 @@ namespace OpenSim.Capabilities.Handlers
|
|||
{
|
||||
if (item.AssetType == (int)AssetType.Link)
|
||||
{
|
||||
InventoryItemBase linkedItem = m_InventoryService.GetItem(new InventoryItemBase(item.AssetID));
|
||||
InventoryItemBase linkedItem = m_InventoryService.GetItem(agentID, item.AssetID);
|
||||
|
||||
// Take care of genuinely broken links where the target doesn't exist
|
||||
// HACK: Also, don't follow up links that just point to other links. In theory this is legitimate,
|
||||
|
@ -659,10 +656,7 @@ from docs seems this was never a spec
|
|||
// Must fetch it individually
|
||||
else if (contents.FolderID == UUID.Zero)
|
||||
{
|
||||
InventoryFolderBase containingFolder = new InventoryFolderBase();
|
||||
containingFolder.ID = freq.folder_id;
|
||||
containingFolder.Owner = freq.owner_id;
|
||||
containingFolder = m_InventoryService.GetFolder(containingFolder);
|
||||
InventoryFolderBase containingFolder = m_InventoryService.GetFolder(freq.owner_id, freq.folder_id);
|
||||
|
||||
if (containingFolder != null)
|
||||
{
|
||||
|
@ -759,12 +753,9 @@ from docs seems this was never a spec
|
|||
m_log.WarnFormat("[WEB FETCH INV DESC HANDLER]: GetMultipleItems failed. Falling back to fetching inventory items one by one.");
|
||||
linked = new InventoryItemBase[itemIDs.Count];
|
||||
int i = 0;
|
||||
InventoryItemBase item = new InventoryItemBase();
|
||||
item.Owner = freq.owner_id;
|
||||
foreach (UUID id in itemIDs)
|
||||
{
|
||||
item.ID = id;
|
||||
linked[i++] = m_InventoryService.GetItem(item);
|
||||
linked[i++] = m_InventoryService.GetItem(freq.owner_id, id);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -850,4 +841,4 @@ from docs seems this was never a spec
|
|||
public InventoryCollection Collection;
|
||||
public int Descendents;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -81,24 +81,15 @@ namespace OpenSim.Capabilities.Handlers
|
|||
// OMG!!! One by one!!! This is fallback code, in case the backend isn't updated
|
||||
m_log.WarnFormat("[FETCH INVENTORY HANDLER]: GetMultipleItems failed. Falling back to fetching inventory items one by one.");
|
||||
items = new InventoryItemBase[itemsRequested.Count];
|
||||
InventoryItemBase item = new InventoryItemBase();
|
||||
item.Owner = m_agentID;
|
||||
foreach (UUID id in itemIDs)
|
||||
{
|
||||
item.ID = id;
|
||||
items[i++] = m_inventoryService.GetItem(item);
|
||||
}
|
||||
items[i++] = m_inventoryService.GetItem(m_agentID, id);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
items = new InventoryItemBase[itemsRequested.Count];
|
||||
InventoryItemBase item = new InventoryItemBase();
|
||||
foreach (UUID id in itemIDs)
|
||||
{
|
||||
item.ID = id;
|
||||
items[i++] = m_inventoryService.GetItem(item);
|
||||
}
|
||||
items[i++] = m_inventoryService.GetItem(UUID.Zero, id);
|
||||
}
|
||||
|
||||
foreach (InventoryItemBase item in items)
|
||||
|
@ -152,4 +143,4 @@ namespace OpenSim.Capabilities.Handlers
|
|||
return llsdItem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1386,7 +1386,7 @@ namespace OpenSim.Region.ClientStack.Linden
|
|||
IClientAPI client = null;
|
||||
|
||||
m_Scene.TryGetClient(m_HostCapsObj.AgentID, out client);
|
||||
item = m_Scene.InventoryService.GetItem(new InventoryItemBase(itemID));
|
||||
item = m_Scene.InventoryService.GetItem(m_HostCapsObj.AgentID, itemID);
|
||||
if (item != null)
|
||||
{
|
||||
string message;
|
||||
|
|
|
@ -898,8 +898,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
|||
|
||||
string sceneObjectXml = SceneObjectSerializer.ToOriginalXmlFormat(grp, scriptedState);
|
||||
|
||||
InventoryItemBase item = new InventoryItemBase(grp.FromItemID, sp.UUID);
|
||||
item = m_scene.InventoryService.GetItem(item);
|
||||
InventoryItemBase item = m_scene.InventoryService.GetItem(sp.UUID, grp.FromItemID);
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
|
@ -1223,8 +1222,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
|||
return;
|
||||
}
|
||||
|
||||
InventoryItemBase item = new InventoryItemBase(itemID, sp.UUID);
|
||||
item = m_scene.InventoryService.GetItem(item);
|
||||
InventoryItemBase item = m_scene.InventoryService.GetItem(sp.UUID, itemID);
|
||||
if (item == null)
|
||||
return;
|
||||
|
||||
|
|
|
@ -219,7 +219,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
|
|||
// sp.Appearance.GetAttachpoint(attSo.FromItemID),
|
||||
// Is.EqualTo((int)AttachmentPoint.Chest));
|
||||
|
||||
InventoryItemBase attachmentItem = scene.InventoryService.GetItem(new InventoryItemBase(attSo.FromItemID));
|
||||
InventoryItemBase attachmentItem = scene.InventoryService.GetItem(sp.UUID, attSo.FromItemID);
|
||||
Assert.That(attachmentItem, Is.Not.Null);
|
||||
Assert.That(attachmentItem.Name, Is.EqualTo(attName));
|
||||
|
||||
|
@ -266,7 +266,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
|
|||
// sp.Appearance.GetAttachpoint(attSo.FromItemID),
|
||||
// Is.EqualTo((int)AttachmentPoint.LeftHand));
|
||||
|
||||
InventoryItemBase attachmentItem = scene.InventoryService.GetItem(new InventoryItemBase(attSo.FromItemID));
|
||||
InventoryItemBase attachmentItem = scene.InventoryService.GetItem(sp.UUID, attSo.FromItemID);
|
||||
Assert.That(attachmentItem, Is.Not.Null);
|
||||
Assert.That(attachmentItem.Name, Is.EqualTo(so.Name));
|
||||
|
||||
|
@ -299,7 +299,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
|
|||
// sp.Appearance.GetAttachpoint(attSo.FromItemID),
|
||||
// Is.EqualTo((int)AttachmentPoint.LeftHand));
|
||||
|
||||
InventoryItemBase attachmentItem = scene.InventoryService.GetItem(new InventoryItemBase(attSo.FromItemID));
|
||||
InventoryItemBase attachmentItem = scene.InventoryService.GetItem(sp.UUID, attSo.FromItemID);
|
||||
Assert.That(attachmentItem, Is.Not.Null);
|
||||
Assert.That(attachmentItem.Name, Is.EqualTo(so2.Name));
|
||||
|
||||
|
@ -332,7 +332,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
|
|||
// sp.Appearance.GetAttachpoint(attSo.FromItemID),
|
||||
// Is.EqualTo((int)AttachmentPoint.LeftHand));
|
||||
|
||||
InventoryItemBase attachmentItem = scene.InventoryService.GetItem(new InventoryItemBase(attSo.FromItemID));
|
||||
InventoryItemBase attachmentItem = scene.InventoryService.GetItem(sp.UUID, attSo.FromItemID);
|
||||
Assert.That(attachmentItem, Is.Not.Null);
|
||||
Assert.That(attachmentItem.Name, Is.EqualTo(so2.Name));
|
||||
|
||||
|
@ -600,7 +600,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
|
|||
// Assert.That(sp.Appearance.GetAttachments().Count, Is.EqualTo(0));
|
||||
|
||||
// Check item status
|
||||
Assert.That(scene.InventoryService.GetItem(new InventoryItemBase(attItem.ID)), Is.Null);
|
||||
Assert.That(scene.InventoryService.GetItem(sp.UUID, attItem.ID), Is.Null);
|
||||
|
||||
// Check object in scene
|
||||
SceneObjectGroup soInScene = scene.GetSceneObjectGroup("att");
|
||||
|
@ -679,7 +679,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
|
|||
|
||||
scene.AttachmentsModule.DetachSingleAttachmentToInv(sp, rezzedSo);
|
||||
|
||||
InventoryItemBase userItemUpdated = scene.InventoryService.GetItem(userItem);
|
||||
InventoryItemBase userItemUpdated = scene.InventoryService.GetItem(userItem.Owner, userItem.ID);
|
||||
AssetBase asset = scene.AssetService.Get(userItemUpdated.AssetID.ToString());
|
||||
|
||||
// TODO: It would probably be better here to check script state via the saving and retrieval of state
|
||||
|
|
|
@ -904,8 +904,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
|
|||
continue;
|
||||
}
|
||||
|
||||
InventoryItemBase baseItem = new InventoryItemBase(appearance.Wearables[i][j].ItemID, userID);
|
||||
baseItem = invService.GetItem(baseItem);
|
||||
InventoryItemBase baseItem = invService.GetItem(userID, appearance.Wearables[i][j].ItemID);
|
||||
|
||||
if (baseItem != null)
|
||||
{
|
||||
|
|
|
@ -239,8 +239,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
|||
InventoryFolderBase trashFolder =
|
||||
invService.GetFolderForType(client.AgentId, FolderType.Trash);
|
||||
|
||||
InventoryItemBase item = new InventoryItemBase(transactionID, client.AgentId);
|
||||
item = invService.GetItem(item);
|
||||
InventoryItemBase item = invService.GetItem(client.AgentId, transactionID);
|
||||
|
||||
if (item != null && trashFolder != null)
|
||||
{
|
||||
|
|
|
@ -86,8 +86,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gestures
|
|||
{
|
||||
IInventoryService invService = m_scene.InventoryService;
|
||||
|
||||
InventoryItemBase item = new InventoryItemBase(gestureId, client.AgentId);
|
||||
item = invService.GetItem(item);
|
||||
InventoryItemBase item = invService.GetItem(client.AgentId, gestureId);
|
||||
if (item != null)
|
||||
{
|
||||
item.Flags |= 1;
|
||||
|
@ -102,8 +101,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gestures
|
|||
{
|
||||
IInventoryService invService = m_scene.InventoryService;
|
||||
|
||||
InventoryItemBase item = new InventoryItemBase(gestureId, client.AgentId);
|
||||
item = invService.GetItem(item);
|
||||
InventoryItemBase item = invService.GetItem(client.AgentId, gestureId);
|
||||
if (item != null)
|
||||
{
|
||||
item.Flags &= ~(uint)1;
|
||||
|
|
|
@ -270,8 +270,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
|||
// RLV uses this
|
||||
if (im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted)
|
||||
{
|
||||
InventoryFolderBase folder = new InventoryFolderBase(inventoryID, client.AgentId);
|
||||
folder = invService.GetFolder(folder);
|
||||
InventoryFolderBase folder = invService.GetFolder(client.AgentId, inventoryID);
|
||||
|
||||
if (folder != null)
|
||||
{
|
||||
|
@ -280,8 +279,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
|||
UUID destFolderID = new UUID(im.binaryBucket, 0);
|
||||
if (destFolderID != UUID.Zero)
|
||||
{
|
||||
InventoryFolderBase destFolder = new InventoryFolderBase(destFolderID, client.AgentId);
|
||||
destFolder = invService.GetFolder(destFolder);
|
||||
InventoryFolderBase destFolder = invService.GetFolder(client.AgentId, destFolderID);
|
||||
if (destFolder != null)
|
||||
{
|
||||
if (folder.ParentID != destFolder.ID)
|
||||
|
@ -339,8 +337,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
|||
|
||||
UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip
|
||||
|
||||
InventoryItemBase item = new InventoryItemBase(inventoryID, client.AgentId);
|
||||
item = invService.GetItem(item);
|
||||
InventoryItemBase item = invService.GetItem(client.AgentId, inventoryID);
|
||||
InventoryFolderBase folder = null;
|
||||
UUID? previousParentFolderID = null;
|
||||
|
||||
|
@ -354,8 +351,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
|||
}
|
||||
else
|
||||
{
|
||||
folder = new InventoryFolderBase(inventoryID, client.AgentId);
|
||||
folder = invService.GetFolder(folder);
|
||||
folder = invService.GetFolder(client.AgentId, inventoryID);
|
||||
|
||||
if (folder != null) // It's a folder
|
||||
{
|
||||
|
@ -368,9 +364,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
|||
// Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code).
|
||||
if (previousParentFolderID != null)
|
||||
{
|
||||
InventoryFolderBase previousParentFolder
|
||||
= new InventoryFolderBase((UUID)previousParentFolderID, client.AgentId);
|
||||
previousParentFolder = invService.GetFolder(previousParentFolder);
|
||||
InventoryFolderBase previousParentFolder = invService.GetFolder(client.AgentId, (UUID)previousParentFolderID);
|
||||
scene.SendInventoryUpdate(client, previousParentFolder, true, true);
|
||||
|
||||
scene.SendInventoryUpdate(client, destinationFolder, true, true);
|
||||
|
@ -392,8 +386,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
|||
|
||||
UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip
|
||||
|
||||
InventoryItemBase item = new InventoryItemBase(inventoryID, client.AgentId);
|
||||
item = invService.GetItem(item);
|
||||
InventoryItemBase item = invService.GetItem(client.AgentId, inventoryID);
|
||||
InventoryFolderBase folder = null;
|
||||
UUID? previousParentFolderID = null;
|
||||
|
||||
|
@ -410,8 +403,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
|||
}
|
||||
else
|
||||
{
|
||||
folder = new InventoryFolderBase(inventoryID, client.AgentId);
|
||||
folder = invService.GetFolder(folder);
|
||||
folder = invService.GetFolder(client.AgentId, inventoryID);
|
||||
|
||||
if (folder != null & trashFolder != null)
|
||||
{
|
||||
|
@ -439,9 +431,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
|||
// Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code).
|
||||
else if (previousParentFolderID != null)
|
||||
{
|
||||
InventoryFolderBase previousParentFolder
|
||||
= new InventoryFolderBase((UUID)previousParentFolderID, client.AgentId);
|
||||
previousParentFolder = invService.GetFolder(previousParentFolder);
|
||||
InventoryFolderBase previousParentFolder = invService.GetFolder(client.AgentId, (UUID)previousParentFolderID);
|
||||
scene.SendInventoryUpdate(client, previousParentFolder, true, true);
|
||||
|
||||
scene.SendInventoryUpdate(client, trashFolder, true, true);
|
||||
|
@ -500,10 +490,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
|||
{
|
||||
UUID folderID = new UUID(im.binaryBucket, 1);
|
||||
|
||||
InventoryFolderBase given =
|
||||
new InventoryFolderBase(folderID, recipientID);
|
||||
InventoryFolderBase folder =
|
||||
scene.InventoryService.GetFolder(given);
|
||||
scene.InventoryService.GetFolder(recipientID, folderID);
|
||||
|
||||
if (folder != null)
|
||||
user.ControllingClient.SendBulkUpdateInventory(folder);
|
||||
|
@ -512,10 +500,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
|||
{
|
||||
UUID itemID = new UUID(im.binaryBucket, 1);
|
||||
|
||||
InventoryItemBase given =
|
||||
new InventoryItemBase(itemID, recipientID);
|
||||
InventoryItemBase item =
|
||||
scene.InventoryService.GetItem(given);
|
||||
scene.InventoryService.GetItem(recipientID, itemID);
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
|
@ -538,10 +524,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
|||
{
|
||||
UUID folderID = new UUID(im.imSessionID);
|
||||
|
||||
InventoryFolderBase given =
|
||||
new InventoryFolderBase(folderID, recipientID);
|
||||
InventoryFolderBase folder =
|
||||
scene.InventoryService.GetFolder(given);
|
||||
scene.InventoryService.GetFolder(recipientID, folderID);
|
||||
|
||||
if (folder != null)
|
||||
user.ControllingClient.SendBulkUpdateInventory(folder);
|
||||
|
@ -550,10 +534,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
|||
{
|
||||
UUID itemID = new UUID(im.imSessionID);
|
||||
|
||||
InventoryItemBase given =
|
||||
new InventoryItemBase(itemID, recipientID);
|
||||
InventoryItemBase item =
|
||||
scene.InventoryService.GetItem(given);
|
||||
scene.InventoryService.GetItem(recipientID, itemID);
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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
|
|||
/// <returns></returns>
|
||||
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<IInventoryService>();
|
||||
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);
|
||||
|
|
|
@ -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
|
|||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <returns></returns>
|
||||
public InventoryItemBase GetItem(InventoryItemBase item) { return null; }
|
||||
public InventoryItemBase GetItem(UUID principalID, UUID itemID) { return null; }
|
||||
|
||||
/// <summary>
|
||||
/// Get a folder, given by its UUID
|
||||
/// </summary>
|
||||
/// <param name="folder"></param>
|
||||
/// <returns></returns>
|
||||
public InventoryFolderBase GetFolder(InventoryFolderBase folder) { return null; }
|
||||
public InventoryFolderBase GetFolder(UUID principalID, UUID folderID) { return null; }
|
||||
|
||||
/// <summary>
|
||||
/// Does the given user have an inventory structure?
|
||||
|
|
|
@ -598,21 +598,19 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
return connector.DeleteItems(ownerID, itemIDs);
|
||||
}
|
||||
|
||||
public InventoryItemBase GetItem(InventoryItemBase item)
|
||||
public InventoryItemBase GetItem(UUID principalID, UUID itemID)
|
||||
{
|
||||
if (item == null)
|
||||
return null;
|
||||
//m_log.Debug("[HG INVENTORY CONNECTOR]: GetItem " + item.ID);
|
||||
|
||||
string invURL = GetInventoryServiceURL(item.Owner);
|
||||
string invURL = GetInventoryServiceURL(principalID);
|
||||
|
||||
if (invURL == null) // not there, forward to local inventory connector to resolve
|
||||
lock (m_Lock)
|
||||
return m_LocalGridInventoryService.GetItem(item);
|
||||
return m_LocalGridInventoryService.GetItem(principalID, itemID);
|
||||
|
||||
IInventoryService connector = GetConnector(invURL);
|
||||
|
||||
return connector.GetItem(item);
|
||||
return connector.GetItem(principalID, itemID);
|
||||
}
|
||||
|
||||
public InventoryItemBase[] GetMultipleItems(UUID userID, UUID[] itemIDs)
|
||||
|
@ -632,22 +630,19 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
return connector.GetMultipleItems(userID, itemIDs);
|
||||
}
|
||||
|
||||
public InventoryFolderBase GetFolder(InventoryFolderBase folder)
|
||||
public InventoryFolderBase GetFolder(UUID principalID, UUID folderID)
|
||||
{
|
||||
if (folder == null)
|
||||
return null;
|
||||
|
||||
//m_log.Debug("[HG INVENTORY CONNECTOR]: GetFolder " + folder.ID);
|
||||
|
||||
string invURL = GetInventoryServiceURL(folder.Owner);
|
||||
string invURL = GetInventoryServiceURL(principalID);
|
||||
|
||||
if (invURL == null) // not there, forward to local inventory connector to resolve
|
||||
lock (m_Lock)
|
||||
return m_LocalGridInventoryService.GetFolder(folder);
|
||||
return m_LocalGridInventoryService.GetFolder(principalID, folderID);
|
||||
|
||||
IInventoryService connector = GetConnector(invURL);
|
||||
|
||||
return connector.GetFolder(folder);
|
||||
return connector.GetFolder(principalID, folderID);
|
||||
}
|
||||
|
||||
public bool HasInventoryForUser(UUID userID)
|
||||
|
@ -710,4 +705,4 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
return connector;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -292,13 +292,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
return m_InventoryService.DeleteItems(ownerID, itemIDs);
|
||||
}
|
||||
|
||||
public InventoryItemBase GetItem(InventoryItemBase item)
|
||||
public InventoryItemBase GetItem(UUID principalID, UUID itemID)
|
||||
{
|
||||
// m_log.DebugFormat("[LOCAL INVENTORY SERVICES CONNECTOR]: Requesting inventory item {0}", item.ID);
|
||||
|
||||
// UUID requestedItemId = item.ID;
|
||||
|
||||
item = m_InventoryService.GetItem(item);
|
||||
InventoryItemBase item = m_InventoryService.GetItem(principalID, itemID);
|
||||
|
||||
// if (null == item)
|
||||
// m_log.ErrorFormat(
|
||||
|
@ -312,9 +312,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
return m_InventoryService.GetMultipleItems(userID, itemIDs);
|
||||
}
|
||||
|
||||
public InventoryFolderBase GetFolder(InventoryFolderBase folder)
|
||||
public InventoryFolderBase GetFolder(UUID principalID, UUID folderID)
|
||||
{
|
||||
return m_InventoryService.GetFolder(folder);
|
||||
return m_InventoryService.GetFolder(principalID, folderID);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -292,15 +292,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
return m_RemoteConnector.DeleteItems(ownerID, itemIDs);
|
||||
}
|
||||
|
||||
public InventoryItemBase GetItem(InventoryItemBase item)
|
||||
public InventoryItemBase GetItem(UUID userID, UUID itemID)
|
||||
{
|
||||
//m_log.DebugFormat("[XINVENTORY CONNECTOR]: GetItem {0}", item.ID);
|
||||
if (item == null)
|
||||
return null;
|
||||
|
||||
if (m_RemoteConnector == null)
|
||||
m_log.DebugFormat("[XINVENTORY CONNECTOR]: connector stub is null!!!");
|
||||
return m_RemoteConnector.GetItem(item);
|
||||
return m_RemoteConnector.GetItem(userID, itemID);
|
||||
}
|
||||
|
||||
public InventoryItemBase[] GetMultipleItems(UUID userID, UUID[] itemIDs)
|
||||
|
@ -311,13 +309,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
return m_RemoteConnector.GetMultipleItems(userID, itemIDs);
|
||||
}
|
||||
|
||||
public InventoryFolderBase GetFolder(InventoryFolderBase folder)
|
||||
public InventoryFolderBase GetFolder(UUID userID, UUID folderID)
|
||||
{
|
||||
//m_log.DebugFormat("[XINVENTORY CONNECTOR]: GetFolder {0}", folder.ID);
|
||||
if (folder == null)
|
||||
return null;
|
||||
|
||||
return m_RemoteConnector.GetFolder(folder);
|
||||
return m_RemoteConnector.GetFolder(userID, folderID);
|
||||
}
|
||||
|
||||
public bool HasInventoryForUser(UUID userID)
|
||||
|
@ -337,4 +333,4 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1100,8 +1100,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
|
|||
if (objectID == UUID.Zero) // User inventory
|
||||
{
|
||||
IInventoryService invService = m_scene.InventoryService;
|
||||
InventoryItemBase assetRequestItem = new InventoryItemBase(notecard, user);
|
||||
assetRequestItem = invService.GetItem(assetRequestItem);
|
||||
InventoryItemBase assetRequestItem = invService.GetItem(user, notecard);
|
||||
if (assetRequestItem == null && LibraryRootFolder != null) // Library item
|
||||
{
|
||||
assetRequestItem = LibraryRootFolder.FindItem(notecard);
|
||||
|
@ -1629,8 +1628,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
|
|||
if (objectID == UUID.Zero) // User inventory
|
||||
{
|
||||
IInventoryService invService = m_scene.InventoryService;
|
||||
InventoryItemBase assetRequestItem = new InventoryItemBase(script, user);
|
||||
assetRequestItem = invService.GetItem(assetRequestItem);
|
||||
InventoryItemBase assetRequestItem = invService.GetItem(user, script);
|
||||
if (assetRequestItem == null && LibraryRootFolder != null) // Library item
|
||||
{
|
||||
assetRequestItem = LibraryRootFolder.FindItem(script);
|
||||
|
@ -1726,8 +1724,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
|
|||
if (objectID == UUID.Zero) // User inventory
|
||||
{
|
||||
IInventoryService invService = m_scene.InventoryService;
|
||||
InventoryItemBase assetRequestItem = new InventoryItemBase(notecard, user);
|
||||
assetRequestItem = invService.GetItem(assetRequestItem);
|
||||
InventoryItemBase assetRequestItem = invService.GetItem(user, notecard);
|
||||
if (assetRequestItem == null && LibraryRootFolder != null) // Library item
|
||||
{
|
||||
assetRequestItem = LibraryRootFolder.FindItem(notecard);
|
||||
|
|
|
@ -143,8 +143,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// m_log.DebugFormat(
|
||||
// "[ASYNC INVENTORY SENDER]: Handling request from {0} for {1} on queue", fh.Client.Name, fh.ItemID);
|
||||
|
||||
InventoryItemBase item = new InventoryItemBase(fh.ItemID, fh.Client.AgentId);
|
||||
item = m_scene.InventoryService.GetItem(item);
|
||||
InventoryItemBase item = m_scene.InventoryService.GetItem(fh.Client.AgentId, fh.ItemID);
|
||||
|
||||
if (item != null)
|
||||
fh.Client.SendInventoryItemDetails(item.Owner, item);
|
||||
|
@ -153,4 +152,4 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -223,8 +223,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
if (core.TryGet<IClientInventory>(out inv))
|
||||
{
|
||||
InventoryFolderBase parent = new InventoryFolderBase(f.ParentID, f.Owner);
|
||||
parent = InventoryService.GetFolder(parent);
|
||||
InventoryFolderBase parent = InventoryService.GetFolder(f.Owner, f.ParentID);
|
||||
inv.SendRemoveInventoryItems(new UUID[] { item.ID });
|
||||
inv.SendBulkUpdateInventory(new InventoryFolderBase[0], new InventoryItemBase[] { item });
|
||||
string message = "The item was placed in folder " + f.Name;
|
||||
|
@ -407,8 +406,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// inventory. Rut-Roh. Whatever. Make this secure. Yeah.
|
||||
//
|
||||
// Passing something to another avatar or a an object will already
|
||||
InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId);
|
||||
item = InventoryService.GetItem(item);
|
||||
InventoryItemBase item = InventoryService.GetItem(remoteClient.AgentId, itemID);
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
|
@ -585,8 +583,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
return null;
|
||||
}
|
||||
|
||||
InventoryItemBase item = new InventoryItemBase(itemId, senderId);
|
||||
item = InventoryService.GetItem(item);
|
||||
InventoryItemBase item = InventoryService.GetItem(senderId, itemId);
|
||||
|
||||
if (item == null)
|
||||
{
|
||||
|
@ -807,7 +804,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
UUID recipientId, UUID senderId, UUID folderId, UUID recipientParentFolderId)
|
||||
{
|
||||
//// Retrieve the folder from the sender
|
||||
InventoryFolderBase folder = InventoryService.GetFolder(new InventoryFolderBase(folderId, senderId));
|
||||
InventoryFolderBase folder = InventoryService.GetFolder(senderId, folderId);
|
||||
if (null == folder)
|
||||
{
|
||||
m_log.ErrorFormat(
|
||||
|
@ -868,8 +865,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
if (item == null)
|
||||
{
|
||||
item = new InventoryItemBase(oldItemID, remoteClient.AgentId);
|
||||
item = InventoryService.GetItem(item);
|
||||
item = InventoryService.GetItem(remoteClient.AgentId, oldItemID);
|
||||
|
||||
if (item == null)
|
||||
{
|
||||
|
@ -953,7 +949,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
foreach (InventoryItemBase b in items)
|
||||
{
|
||||
CopyInventoryItem(remoteClient, 0, remoteClient.AgentId, b.ID, b.Folder, null);
|
||||
InventoryItemBase n = InventoryService.GetItem(b);
|
||||
InventoryItemBase n = InventoryService.GetItem(b.Owner, b.ID);
|
||||
n.Folder = destfolder;
|
||||
moveitems.Add(n);
|
||||
remoteClient.SendInventoryItemCreateUpdate(n, 0);
|
||||
|
@ -1605,8 +1601,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
InventoryCollection contents = InventoryService.GetFolderContent(client.AgentId, folder.ID);
|
||||
|
||||
// Fetch the folder itself to get its current version
|
||||
InventoryFolderBase containingFolder = new InventoryFolderBase(folder.ID, client.AgentId);
|
||||
containingFolder = InventoryService.GetFolder(containingFolder);
|
||||
InventoryFolderBase containingFolder = InventoryService.GetFolder(client.AgentId, folder.ID);
|
||||
|
||||
// m_log.DebugFormat("[AGENT INVENTORY]: Sending inventory folder contents ({0} nodes) for \"{1}\" to {2} {3}",
|
||||
// contents.Folders.Count + contents.Items.Count, containingFolder.Name, client.FirstName, client.LastName);
|
||||
|
@ -1620,7 +1615,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
{
|
||||
if (item.AssetType == (int)AssetType.Link)
|
||||
{
|
||||
InventoryItemBase linkedItem = InventoryService.GetItem(new InventoryItemBase(item.AssetID));
|
||||
InventoryItemBase linkedItem = InventoryService.GetItem(client.AgentId, item.AssetID);
|
||||
|
||||
// Take care of genuinely broken links where the target doesn't exist
|
||||
// HACK: Also, don't follow up links that just point to other links. In theory this is legitimate,
|
||||
|
@ -1680,8 +1675,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
UUID copyID = UUID.Random();
|
||||
if (itemID != UUID.Zero)
|
||||
{
|
||||
InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId);
|
||||
item = InventoryService.GetItem(item);
|
||||
InventoryItemBase item = InventoryService.GetItem(remoteClient.AgentId, itemID);
|
||||
|
||||
// Try library
|
||||
if (null == item && LibraryService != null && LibraryService.LibraryRootFolder != null)
|
||||
|
@ -1836,8 +1830,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
public SceneObjectPart RezScriptFromAgentInventory(UUID agentID, UUID fromItemID, uint localID)
|
||||
{
|
||||
UUID copyID = UUID.Random();
|
||||
InventoryItemBase item = new InventoryItemBase(fromItemID, agentID);
|
||||
item = InventoryService.GetItem(item);
|
||||
InventoryItemBase item = InventoryService.GetItem(agentID, fromItemID);
|
||||
|
||||
// Try library
|
||||
// XXX clumsy, possibly should be one call
|
||||
|
|
|
@ -627,8 +627,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// m_log.DebugFormat(
|
||||
// "[AGENT INVENTORY]: Updating inventory folder {0} {1} for {2} {3}", folderID, name, remoteClient.Name, remoteClient.AgentId);
|
||||
|
||||
InventoryFolderBase folder = new InventoryFolderBase(folderID, remoteClient.AgentId);
|
||||
folder = InventoryService.GetFolder(folder);
|
||||
InventoryFolderBase folder = InventoryService.GetFolder(remoteClient.AgentId, folderID);
|
||||
if (folder != null)
|
||||
{
|
||||
folder.Name = name;
|
||||
|
@ -645,8 +644,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
public void HandleMoveInventoryFolder(IClientAPI remoteClient, UUID folderID, UUID parentID)
|
||||
{
|
||||
InventoryFolderBase folder = new InventoryFolderBase(folderID, remoteClient.AgentId);
|
||||
folder = InventoryService.GetFolder(folder);
|
||||
InventoryFolderBase folder = InventoryService.GetFolder(remoteClient.AgentId, folderID);
|
||||
if (folder != null)
|
||||
{
|
||||
folder.ParentID = parentID;
|
||||
|
|
|
@ -505,8 +505,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
|||
//variable will be set to null and attachment will
|
||||
//not be included with the group notice.
|
||||
Scene scene = (Scene)remoteClient.Scene;
|
||||
item = new InventoryItemBase(itemID, ownerID);
|
||||
item = scene.InventoryService.GetItem(item);
|
||||
item = scene.InventoryService.GetItem(ownerID, itemID);
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
|
|
|
@ -114,12 +114,12 @@ namespace OpenSim.Server.Handlers.Inventory
|
|||
"POST", "/DeleteItem/", DeleteItems, CheckAuthSession));
|
||||
|
||||
m_httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryItemBase, InventoryItemBase>(
|
||||
"POST", "/QueryItem/", m_InventoryService.GetItem, CheckAuthSession));
|
||||
new RestDeserialiseSecureHandler<Guid, InventoryItemBase>(
|
||||
"POST", "/QueryItem/", GetItem, CheckAuthSession));
|
||||
|
||||
m_httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryFolderBase, InventoryFolderBase>(
|
||||
"POST", "/QueryFolder/", m_InventoryService.GetFolder, CheckAuthSession));
|
||||
new RestDeserialiseSecureHandler<Guid, InventoryFolderBase>(
|
||||
"POST", "/QueryFolder/", GetFolder, CheckAuthSession));
|
||||
|
||||
m_httpServer.AddStreamHandler(
|
||||
new RestDeserialiseTrustedHandler<Guid, bool>(
|
||||
|
@ -205,6 +205,16 @@ namespace OpenSim.Server.Handlers.Inventory
|
|||
return new Dictionary<AssetType, InventoryFolderBase>();
|
||||
}
|
||||
|
||||
public InventoryItemBase GetItem(Guid guid)
|
||||
{
|
||||
return m_InventoryService.GetItem(UUID.Zero, new UUID(guid));
|
||||
}
|
||||
|
||||
public InventoryFolderBase GetFolder(Guid guid)
|
||||
{
|
||||
return m_InventoryService.GetFolder(UUID.Zero, new UUID(guid));
|
||||
}
|
||||
|
||||
public InventoryCollection GetFolderContent(Guid guid)
|
||||
{
|
||||
return m_InventoryService.GetFolderContent(UUID.Zero, new UUID(guid));
|
||||
|
|
|
@ -566,9 +566,11 @@ namespace OpenSim.Server.Handlers.Inventory
|
|||
Dictionary<string,object> result = new Dictionary<string,object>();
|
||||
UUID id = UUID.Zero;
|
||||
UUID.TryParse(request["ID"].ToString(), out id);
|
||||
UUID user = UUID.Zero;
|
||||
if (request.ContainsKey("PRINCIPAL"))
|
||||
UUID.TryParse(request["PRINCIPAL"].ToString(), out user);
|
||||
|
||||
InventoryItemBase item = new InventoryItemBase(id);
|
||||
item = m_InventoryService.GetItem(item);
|
||||
InventoryItemBase item = m_InventoryService.GetItem(user, id);
|
||||
if (item != null)
|
||||
result["item"] = EncodeItem(item);
|
||||
|
||||
|
@ -617,9 +619,11 @@ namespace OpenSim.Server.Handlers.Inventory
|
|||
Dictionary<string, object> result = new Dictionary<string, object>();
|
||||
UUID id = UUID.Zero;
|
||||
UUID.TryParse(request["ID"].ToString(), out id);
|
||||
UUID user = UUID.Zero;
|
||||
if (request.ContainsKey("PRINCIPAL"))
|
||||
UUID.TryParse(request["PRINCIPAL"].ToString(), out user);
|
||||
|
||||
InventoryFolderBase folder = new InventoryFolderBase(id);
|
||||
folder = m_InventoryService.GetFolder(folder);
|
||||
InventoryFolderBase folder = m_InventoryService.GetFolder(user, id);
|
||||
if (folder != null)
|
||||
result["folder"] = EncodeFolder(folder);
|
||||
|
||||
|
|
|
@ -520,10 +520,10 @@ namespace OpenSim.Services.Connectors
|
|||
return CheckReturn(ret);
|
||||
}
|
||||
|
||||
public InventoryItemBase GetItem(InventoryItemBase item)
|
||||
public InventoryItemBase GetItem(UUID principalID, UUID itemID)
|
||||
{
|
||||
InventoryItemBase retrieved = null;
|
||||
if (m_ItemCache.TryGetValue(item.ID, out retrieved))
|
||||
if (m_ItemCache.TryGetValue(itemID, out retrieved))
|
||||
{
|
||||
return retrieved;
|
||||
}
|
||||
|
@ -532,7 +532,8 @@ namespace OpenSim.Services.Connectors
|
|||
{
|
||||
Dictionary<string, object> ret = MakeRequest("GETITEM",
|
||||
new Dictionary<string, object> {
|
||||
{ "ID", item.ID.ToString() }
|
||||
{ "ID", itemID.ToString() },
|
||||
{ "PRINCIPAL", principalID.ToString() }
|
||||
});
|
||||
|
||||
if (!CheckReturn(ret))
|
||||
|
@ -545,7 +546,7 @@ namespace OpenSim.Services.Connectors
|
|||
m_log.Error("[XINVENTORY SERVICES CONNECTOR]: Exception in GetItem: ", e);
|
||||
}
|
||||
|
||||
m_ItemCache.AddOrUpdate(item.ID, retrieved, CACHE_EXPIRATION_SECONDS);
|
||||
m_ItemCache.AddOrUpdate(itemID, retrieved, CACHE_EXPIRATION_SECONDS);
|
||||
|
||||
return retrieved;
|
||||
}
|
||||
|
@ -613,13 +614,14 @@ namespace OpenSim.Services.Connectors
|
|||
return itemArr;
|
||||
}
|
||||
|
||||
public InventoryFolderBase GetFolder(InventoryFolderBase folder)
|
||||
public InventoryFolderBase GetFolder(UUID principalID, UUID folderID)
|
||||
{
|
||||
try
|
||||
{
|
||||
Dictionary<string, object> ret = MakeRequest("GETFOLDER",
|
||||
new Dictionary<string, object> {
|
||||
{ "ID", folder.ID.ToString() }
|
||||
{ "ID", folderID.ToString() },
|
||||
{ "PRINCIPAL", principalID.ToString() }
|
||||
});
|
||||
|
||||
if (!CheckReturn(ret))
|
||||
|
|
|
@ -277,17 +277,17 @@ namespace OpenSim.Services.Connectors.SimianGrid
|
|||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <returns></returns>
|
||||
public InventoryItemBase GetItem(InventoryItemBase item)
|
||||
public InventoryItemBase GetItem(UUID principalID, UUID itemID)
|
||||
{
|
||||
InventoryItemBase retrieved = null;
|
||||
if (m_ItemCache.TryGetValue(item.ID, out retrieved))
|
||||
if (m_ItemCache.TryGetValue(itemID, out retrieved))
|
||||
return retrieved;
|
||||
|
||||
NameValueCollection requestArgs = new NameValueCollection
|
||||
{
|
||||
{ "RequestMethod", "GetInventoryNode" },
|
||||
{ "ItemID", item.ID.ToString() },
|
||||
{ "OwnerID", item.Owner.ToString() },
|
||||
{ "ItemID", itemID.ToString() },
|
||||
{ "OwnerID", principalID.ToString() },
|
||||
{ "IncludeFolders", "1" },
|
||||
{ "IncludeItems", "1" },
|
||||
{ "ChildrenOnly", "1" }
|
||||
|
@ -303,17 +303,17 @@ namespace OpenSim.Services.Connectors.SimianGrid
|
|||
// and sanity check just in case
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
if (items[i].ID == item.ID)
|
||||
if (items[i].ID == itemID)
|
||||
{
|
||||
retrieved = items[i];
|
||||
m_ItemCache.AddOrUpdate(item.ID, retrieved, CACHE_EXPIRATION_SECONDS);
|
||||
m_ItemCache.AddOrUpdate(itemID, retrieved, CACHE_EXPIRATION_SECONDS);
|
||||
return retrieved;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_log.Warn("[SIMIAN INVENTORY CONNECTOR]: Item " + item.ID + " owned by " + item.Owner + " not found");
|
||||
m_log.Warn("[SIMIAN INVENTORY CONNECTOR]: Item " + itemID + " owned by " + principalID + " not found");
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -321,13 +321,8 @@ namespace OpenSim.Services.Connectors.SimianGrid
|
|||
{
|
||||
InventoryItemBase[] result = new InventoryItemBase[itemIDs.Length];
|
||||
int i = 0;
|
||||
InventoryItemBase item = new InventoryItemBase();
|
||||
item.Owner = principalID;
|
||||
foreach (UUID id in itemIDs)
|
||||
{
|
||||
item.ID = id;
|
||||
result[i++] = GetItem(item);
|
||||
}
|
||||
result[i++] = GetItem(principalID, id);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -337,13 +332,13 @@ namespace OpenSim.Services.Connectors.SimianGrid
|
|||
/// </summary>
|
||||
/// <param name="folder"></param>
|
||||
/// <returns></returns>
|
||||
public InventoryFolderBase GetFolder(InventoryFolderBase folder)
|
||||
public InventoryFolderBase GetFolder(UUID principalID, UUID folderID)
|
||||
{
|
||||
NameValueCollection requestArgs = new NameValueCollection
|
||||
{
|
||||
{ "RequestMethod", "GetInventoryNode" },
|
||||
{ "ItemID", folder.ID.ToString() },
|
||||
{ "OwnerID", folder.Owner.ToString() },
|
||||
{ "ItemID", folderID.ToString() },
|
||||
{ "OwnerID", principalID.ToString() },
|
||||
{ "IncludeFolders", "1" },
|
||||
{ "IncludeItems", "0" },
|
||||
{ "ChildrenOnly", "1" }
|
||||
|
@ -353,7 +348,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
|
|||
if (response["Success"].AsBoolean() && response["Items"] is OSDArray)
|
||||
{
|
||||
OSDArray items = (OSDArray)response["Items"];
|
||||
List<InventoryFolderBase> folders = GetFoldersFromResponse(items, folder.ID, true);
|
||||
List<InventoryFolderBase> folders = GetFoldersFromResponse(items, folderID, true);
|
||||
|
||||
if (folders.Count > 0)
|
||||
return folders[0];
|
||||
|
|
|
@ -291,9 +291,9 @@ namespace OpenSim.Services.HypergridService
|
|||
//{
|
||||
//}
|
||||
|
||||
public override InventoryItemBase GetItem(InventoryItemBase item)
|
||||
public override InventoryItemBase GetItem(UUID principalID, UUID itemID)
|
||||
{
|
||||
InventoryItemBase it = base.GetItem(item);
|
||||
InventoryItemBase it = base.GetItem(principalID, itemID);
|
||||
if (it != null)
|
||||
{
|
||||
UserAccount user = m_Cache.GetUser(it.CreatorId);
|
||||
|
|
|
@ -383,7 +383,7 @@ namespace OpenSim.Services.HypergridService
|
|||
// Check the items' current folders
|
||||
foreach (InventoryItemBase item in items)
|
||||
{
|
||||
InventoryItemBase originalItem = base.GetItem(item);
|
||||
InventoryItemBase originalItem = base.GetItem(item.Owner, item.ID);
|
||||
if (!IsWithinSuitcaseTree(originalItem.Owner, originalItem.Folder))
|
||||
{
|
||||
m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: MoveItems: folder {0} (user {1}) is not within Suitcase tree", item.Folder, item.Owner);
|
||||
|
@ -401,7 +401,7 @@ namespace OpenSim.Services.HypergridService
|
|||
|
||||
public new InventoryItemBase GetItem(InventoryItemBase item)
|
||||
{
|
||||
InventoryItemBase it = base.GetItem(item);
|
||||
InventoryItemBase it = base.GetItem(item.Owner, item.ID);
|
||||
if (it == null)
|
||||
{
|
||||
m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: Unable to retrieve item {0} ({1}) in folder {2}",
|
||||
|
@ -426,9 +426,9 @@ namespace OpenSim.Services.HypergridService
|
|||
return it;
|
||||
}
|
||||
|
||||
public new InventoryFolderBase GetFolder(InventoryFolderBase folder)
|
||||
public new InventoryFolderBase GetFolder(UUID principalID, UUID folderID)
|
||||
{
|
||||
InventoryFolderBase f = base.GetFolder(folder);
|
||||
InventoryFolderBase f = base.GetFolder(principalID, folderID);
|
||||
|
||||
if (f != null)
|
||||
{
|
||||
|
|
|
@ -161,7 +161,7 @@ namespace OpenSim.Services.Interfaces
|
|||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <returns>null if no item was found, otherwise the found item</returns>
|
||||
InventoryItemBase GetItem(InventoryItemBase item);
|
||||
InventoryItemBase GetItem(UUID userID, UUID itemID);
|
||||
|
||||
/// <summary>
|
||||
/// Get multiple items, given by their UUIDs
|
||||
|
@ -175,7 +175,7 @@ namespace OpenSim.Services.Interfaces
|
|||
/// </summary>
|
||||
/// <param name="folder"></param>
|
||||
/// <returns></returns>
|
||||
InventoryFolderBase GetFolder(InventoryFolderBase folder);
|
||||
InventoryFolderBase GetFolder(UUID userID, UUID folderID);
|
||||
|
||||
/// <summary>
|
||||
/// Does the given user have an inventory structure?
|
||||
|
|
|
@ -90,8 +90,7 @@ namespace OpenSim.Services.InventoryService.Tests
|
|||
|
||||
Assert.That(xis.AddItem(itemToStore), Is.True);
|
||||
|
||||
InventoryItemBase itemRetrieved = new InventoryItemBase(itemId);
|
||||
itemRetrieved = xis.GetItem(itemRetrieved);
|
||||
InventoryItemBase itemRetrieved = xis.GetItem(UUID.Zero, itemId);
|
||||
|
||||
Assert.That(itemRetrieved, Is.Not.Null);
|
||||
Assert.That(itemRetrieved.CreatorId, Is.EqualTo(creatorId));
|
||||
|
@ -139,8 +138,7 @@ namespace OpenSim.Services.InventoryService.Tests
|
|||
|
||||
Assert.That(xis.UpdateItem(itemToStore), Is.True);
|
||||
|
||||
InventoryItemBase itemRetrieved = new InventoryItemBase(itemId);
|
||||
itemRetrieved = xis.GetItem(itemRetrieved);
|
||||
InventoryItemBase itemRetrieved = xis.GetItem(UUID.Zero, itemId);
|
||||
|
||||
Assert.That(itemRetrieved, Is.Not.Null);
|
||||
Assert.That(itemRetrieved.Name, Is.EqualTo(itemName2));
|
||||
|
@ -162,7 +160,7 @@ namespace OpenSim.Services.InventoryService.Tests
|
|||
|
||||
Assert.That(xis.UpdateItem(itemToStore), Is.True);
|
||||
|
||||
itemRetrieved = xis.GetItem(itemRetrieved);
|
||||
itemRetrieved = xis.GetItem(itemRetrieved.Owner, itemRetrieved.ID);
|
||||
|
||||
Assert.That(itemRetrieved, Is.Not.Null);
|
||||
Assert.That(itemRetrieved.CreatorId, Is.EqualTo(creatorId));
|
||||
|
@ -174,4 +172,4 @@ namespace OpenSim.Services.InventoryService.Tests
|
|||
Assert.That(itemRetrieved.Name, Is.EqualTo(itemName3));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -315,8 +315,7 @@ namespace OpenSim.Services.InventoryService
|
|||
inventory.Items.Add(ConvertToOpenSim(i));
|
||||
}
|
||||
|
||||
InventoryFolderBase f = new InventoryFolderBase(folderID, principalID);
|
||||
f = GetFolder(f);
|
||||
InventoryFolderBase f = GetFolder(principalID, folderID);
|
||||
if (f != null)
|
||||
{
|
||||
inventory.Version = f.Version;
|
||||
|
@ -359,7 +358,7 @@ namespace OpenSim.Services.InventoryService
|
|||
{
|
||||
// m_log.DebugFormat("[XINVENTORY]: Add folder {0} type {1} in parent {2}", folder.Name, folder.Type, folder.ParentID);
|
||||
|
||||
InventoryFolderBase check = GetFolder(folder);
|
||||
InventoryFolderBase check = GetFolder(folder.Owner, folder.ID);
|
||||
if (check != null)
|
||||
return false;
|
||||
|
||||
|
@ -402,7 +401,7 @@ namespace OpenSim.Services.InventoryService
|
|||
// m_log.DebugFormat("[XINVENTORY]: Update folder {0} {1} ({2})", folder.Name, folder.Type, folder.ID);
|
||||
|
||||
XInventoryFolder xFolder = ConvertFromOpenSim(folder);
|
||||
InventoryFolderBase check = GetFolder(folder);
|
||||
InventoryFolderBase check = GetFolder(folder.Owner, folder.ID);
|
||||
|
||||
if (check == null)
|
||||
return AddFolder(folder);
|
||||
|
@ -512,7 +511,7 @@ namespace OpenSim.Services.InventoryService
|
|||
// m_log.InfoFormat(
|
||||
// "[XINVENTORY SERVICE]: Updating item {0} {1} in folder {2}", item.Name, item.ID, item.Folder);
|
||||
|
||||
InventoryItemBase retrievedItem = GetItem(item);
|
||||
InventoryItemBase retrievedItem = GetItem(item.Owner, item.ID);
|
||||
|
||||
if (retrievedItem == null)
|
||||
{
|
||||
|
@ -598,11 +597,11 @@ namespace OpenSim.Services.InventoryService
|
|||
return true;
|
||||
}
|
||||
|
||||
public virtual InventoryItemBase GetItem(InventoryItemBase item)
|
||||
public virtual InventoryItemBase GetItem(UUID principalID, UUID itemID)
|
||||
{
|
||||
XInventoryItem[] items = m_Database.GetItems(
|
||||
new string[] { "inventoryID" },
|
||||
new string[] { item.ID.ToString() });
|
||||
new string[] { itemID.ToString() });
|
||||
|
||||
if (items.Length == 0)
|
||||
return null;
|
||||
|
@ -614,22 +613,17 @@ namespace OpenSim.Services.InventoryService
|
|||
{
|
||||
InventoryItemBase[] items = new InventoryItemBase[ids.Length];
|
||||
int i = 0;
|
||||
InventoryItemBase item = new InventoryItemBase();
|
||||
item.Owner = userID;
|
||||
foreach (UUID id in ids)
|
||||
{
|
||||
item.ID = id;
|
||||
items[i++] = GetItem(item);
|
||||
}
|
||||
items[i++] = GetItem(userID, id);
|
||||
|
||||
return items;
|
||||
}
|
||||
|
||||
public virtual InventoryFolderBase GetFolder(InventoryFolderBase folder)
|
||||
public virtual InventoryFolderBase GetFolder(UUID principalID, UUID folderID)
|
||||
{
|
||||
XInventoryFolder[] folders = m_Database.GetFolders(
|
||||
new string[] { "folderID"},
|
||||
new string[] { folder.ID.ToString() });
|
||||
new string[] { folderID.ToString() });
|
||||
|
||||
if (folders.Length == 0)
|
||||
return null;
|
||||
|
|
|
@ -159,8 +159,7 @@ namespace Robust.Tests
|
|||
XInventoryServicesConnector m_Connector = new XInventoryServicesConnector(DemonServer.Address);
|
||||
|
||||
// Prefetch Notecard 1, will be cached from here on
|
||||
InventoryItemBase item = new InventoryItemBase(new UUID("10000000-0000-0000-0000-000000000001"), m_userID);
|
||||
item = m_Connector.GetItem(item);
|
||||
InventoryItemBase item = m_Connector.GetItem(m_userID, new UUID("10000000-0000-0000-0000-000000000001"));
|
||||
Assert.NotNull(item, "Failed to get Notecard 1");
|
||||
Assert.AreEqual("Test Notecard 1", item.Name, "Wrong name for Notecard 1");
|
||||
|
||||
|
|
Loading…
Reference in New Issue