aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules
diff options
context:
space:
mode:
authorMelanie Thielker2016-07-04 03:35:48 +0100
committerMelanie Thielker2016-07-04 03:35:48 +0100
commitea8f3c83bf96453e8223d918933d5708fa49a3cc (patch)
tree288972a5d6f112426da2b5ab109fe18ba5aedc2e /OpenSim/Region/CoreModules
parentincrease xmlrpc timeout in xmlrpcgroups, disable its cache until its entries ... (diff)
downloadopensim-SC_OLD-ea8f3c83bf96453e8223d918933d5708fa49a3cc.zip
opensim-SC_OLD-ea8f3c83bf96453e8223d918933d5708fa49a3cc.tar.gz
opensim-SC_OLD-ea8f3c83bf96453e8223d918933d5708fa49a3cc.tar.bz2
opensim-SC_OLD-ea8f3c83bf96453e8223d918933d5708fa49a3cc.tar.xz
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.
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs6
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Attachments/Tests/AttachmentsModuleTests.cs12
-rw-r--r--OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs3
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Friends/CallingCardModule.cs3
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Gestures/GesturesModule.cs6
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs42
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs3
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs4
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs19
-rw-r--r--OpenSim/Region/CoreModules/Framework/Library/LocalInventoryService.cs11
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs23
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs8
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs14
-rw-r--r--OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs9
14 files changed, 56 insertions, 107 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
index 0cc630f..8f03a0a 100644
--- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
@@ -898,8 +898,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
898 898
899 string sceneObjectXml = SceneObjectSerializer.ToOriginalXmlFormat(grp, scriptedState); 899 string sceneObjectXml = SceneObjectSerializer.ToOriginalXmlFormat(grp, scriptedState);
900 900
901 InventoryItemBase item = new InventoryItemBase(grp.FromItemID, sp.UUID); 901 InventoryItemBase item = m_scene.InventoryService.GetItem(sp.UUID, grp.FromItemID);
902 item = m_scene.InventoryService.GetItem(item);
903 902
904 if (item != null) 903 if (item != null)
905 { 904 {
@@ -1223,8 +1222,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
1223 return; 1222 return;
1224 } 1223 }
1225 1224
1226 InventoryItemBase item = new InventoryItemBase(itemID, sp.UUID); 1225 InventoryItemBase item = m_scene.InventoryService.GetItem(sp.UUID, itemID);
1227 item = m_scene.InventoryService.GetItem(item);
1228 if (item == null) 1226 if (item == null)
1229 return; 1227 return;
1230 1228
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/Tests/AttachmentsModuleTests.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/Tests/AttachmentsModuleTests.cs
index 10b2ff6..a83342c 100644
--- a/OpenSim/Region/CoreModules/Avatar/Attachments/Tests/AttachmentsModuleTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Attachments/Tests/AttachmentsModuleTests.cs
@@ -219,7 +219,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
219// sp.Appearance.GetAttachpoint(attSo.FromItemID), 219// sp.Appearance.GetAttachpoint(attSo.FromItemID),
220// Is.EqualTo((int)AttachmentPoint.Chest)); 220// Is.EqualTo((int)AttachmentPoint.Chest));
221 221
222 InventoryItemBase attachmentItem = scene.InventoryService.GetItem(new InventoryItemBase(attSo.FromItemID)); 222 InventoryItemBase attachmentItem = scene.InventoryService.GetItem(sp.UUID, attSo.FromItemID);
223 Assert.That(attachmentItem, Is.Not.Null); 223 Assert.That(attachmentItem, Is.Not.Null);
224 Assert.That(attachmentItem.Name, Is.EqualTo(attName)); 224 Assert.That(attachmentItem.Name, Is.EqualTo(attName));
225 225
@@ -266,7 +266,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
266// sp.Appearance.GetAttachpoint(attSo.FromItemID), 266// sp.Appearance.GetAttachpoint(attSo.FromItemID),
267// Is.EqualTo((int)AttachmentPoint.LeftHand)); 267// Is.EqualTo((int)AttachmentPoint.LeftHand));
268 268
269 InventoryItemBase attachmentItem = scene.InventoryService.GetItem(new InventoryItemBase(attSo.FromItemID)); 269 InventoryItemBase attachmentItem = scene.InventoryService.GetItem(sp.UUID, attSo.FromItemID);
270 Assert.That(attachmentItem, Is.Not.Null); 270 Assert.That(attachmentItem, Is.Not.Null);
271 Assert.That(attachmentItem.Name, Is.EqualTo(so.Name)); 271 Assert.That(attachmentItem.Name, Is.EqualTo(so.Name));
272 272
@@ -299,7 +299,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
299// sp.Appearance.GetAttachpoint(attSo.FromItemID), 299// sp.Appearance.GetAttachpoint(attSo.FromItemID),
300// Is.EqualTo((int)AttachmentPoint.LeftHand)); 300// Is.EqualTo((int)AttachmentPoint.LeftHand));
301 301
302 InventoryItemBase attachmentItem = scene.InventoryService.GetItem(new InventoryItemBase(attSo.FromItemID)); 302 InventoryItemBase attachmentItem = scene.InventoryService.GetItem(sp.UUID, attSo.FromItemID);
303 Assert.That(attachmentItem, Is.Not.Null); 303 Assert.That(attachmentItem, Is.Not.Null);
304 Assert.That(attachmentItem.Name, Is.EqualTo(so2.Name)); 304 Assert.That(attachmentItem.Name, Is.EqualTo(so2.Name));
305 305
@@ -332,7 +332,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
332// sp.Appearance.GetAttachpoint(attSo.FromItemID), 332// sp.Appearance.GetAttachpoint(attSo.FromItemID),
333// Is.EqualTo((int)AttachmentPoint.LeftHand)); 333// Is.EqualTo((int)AttachmentPoint.LeftHand));
334 334
335 InventoryItemBase attachmentItem = scene.InventoryService.GetItem(new InventoryItemBase(attSo.FromItemID)); 335 InventoryItemBase attachmentItem = scene.InventoryService.GetItem(sp.UUID, attSo.FromItemID);
336 Assert.That(attachmentItem, Is.Not.Null); 336 Assert.That(attachmentItem, Is.Not.Null);
337 Assert.That(attachmentItem.Name, Is.EqualTo(so2.Name)); 337 Assert.That(attachmentItem.Name, Is.EqualTo(so2.Name));
338 338
@@ -600,7 +600,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
600// Assert.That(sp.Appearance.GetAttachments().Count, Is.EqualTo(0)); 600// Assert.That(sp.Appearance.GetAttachments().Count, Is.EqualTo(0));
601 601
602 // Check item status 602 // Check item status
603 Assert.That(scene.InventoryService.GetItem(new InventoryItemBase(attItem.ID)), Is.Null); 603 Assert.That(scene.InventoryService.GetItem(sp.UUID, attItem.ID), Is.Null);
604 604
605 // Check object in scene 605 // Check object in scene
606 SceneObjectGroup soInScene = scene.GetSceneObjectGroup("att"); 606 SceneObjectGroup soInScene = scene.GetSceneObjectGroup("att");
@@ -679,7 +679,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
679 679
680 scene.AttachmentsModule.DetachSingleAttachmentToInv(sp, rezzedSo); 680 scene.AttachmentsModule.DetachSingleAttachmentToInv(sp, rezzedSo);
681 681
682 InventoryItemBase userItemUpdated = scene.InventoryService.GetItem(userItem); 682 InventoryItemBase userItemUpdated = scene.InventoryService.GetItem(userItem.Owner, userItem.ID);
683 AssetBase asset = scene.AssetService.Get(userItemUpdated.AssetID.ToString()); 683 AssetBase asset = scene.AssetService.Get(userItemUpdated.AssetID.ToString());
684 684
685 // TODO: It would probably be better here to check script state via the saving and retrieval of state 685 // TODO: It would probably be better here to check script state via the saving and retrieval of state
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
index c800383..08b276d 100644
--- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
@@ -904,8 +904,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
904 continue; 904 continue;
905 } 905 }
906 906
907 InventoryItemBase baseItem = new InventoryItemBase(appearance.Wearables[i][j].ItemID, userID); 907 InventoryItemBase baseItem = invService.GetItem(userID, appearance.Wearables[i][j].ItemID);
908 baseItem = invService.GetItem(baseItem);
909 908
910 if (baseItem != null) 909 if (baseItem != null)
911 { 910 {
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/CallingCardModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/CallingCardModule.cs
index eb23e83..e5bf919 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/CallingCardModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/CallingCardModule.cs
@@ -239,8 +239,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
239 InventoryFolderBase trashFolder = 239 InventoryFolderBase trashFolder =
240 invService.GetFolderForType(client.AgentId, FolderType.Trash); 240 invService.GetFolderForType(client.AgentId, FolderType.Trash);
241 241
242 InventoryItemBase item = new InventoryItemBase(transactionID, client.AgentId); 242 InventoryItemBase item = invService.GetItem(client.AgentId, transactionID);
243 item = invService.GetItem(item);
244 243
245 if (item != null && trashFolder != null) 244 if (item != null && trashFolder != null)
246 { 245 {
diff --git a/OpenSim/Region/CoreModules/Avatar/Gestures/GesturesModule.cs b/OpenSim/Region/CoreModules/Avatar/Gestures/GesturesModule.cs
index 095c57b..4efcd3b 100644
--- a/OpenSim/Region/CoreModules/Avatar/Gestures/GesturesModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Gestures/GesturesModule.cs
@@ -86,8 +86,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gestures
86 { 86 {
87 IInventoryService invService = m_scene.InventoryService; 87 IInventoryService invService = m_scene.InventoryService;
88 88
89 InventoryItemBase item = new InventoryItemBase(gestureId, client.AgentId); 89 InventoryItemBase item = invService.GetItem(client.AgentId, gestureId);
90 item = invService.GetItem(item);
91 if (item != null) 90 if (item != null)
92 { 91 {
93 item.Flags |= 1; 92 item.Flags |= 1;
@@ -102,8 +101,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gestures
102 { 101 {
103 IInventoryService invService = m_scene.InventoryService; 102 IInventoryService invService = m_scene.InventoryService;
104 103
105 InventoryItemBase item = new InventoryItemBase(gestureId, client.AgentId); 104 InventoryItemBase item = invService.GetItem(client.AgentId, gestureId);
106 item = invService.GetItem(item);
107 if (item != null) 105 if (item != null)
108 { 106 {
109 item.Flags &= ~(uint)1; 107 item.Flags &= ~(uint)1;
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
index 085328c..6c2cf0a 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
@@ -270,8 +270,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
270 // RLV uses this 270 // RLV uses this
271 if (im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted) 271 if (im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted)
272 { 272 {
273 InventoryFolderBase folder = new InventoryFolderBase(inventoryID, client.AgentId); 273 InventoryFolderBase folder = invService.GetFolder(client.AgentId, inventoryID);
274 folder = invService.GetFolder(folder);
275 274
276 if (folder != null) 275 if (folder != null)
277 { 276 {
@@ -280,8 +279,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
280 UUID destFolderID = new UUID(im.binaryBucket, 0); 279 UUID destFolderID = new UUID(im.binaryBucket, 0);
281 if (destFolderID != UUID.Zero) 280 if (destFolderID != UUID.Zero)
282 { 281 {
283 InventoryFolderBase destFolder = new InventoryFolderBase(destFolderID, client.AgentId); 282 InventoryFolderBase destFolder = invService.GetFolder(client.AgentId, destFolderID);
284 destFolder = invService.GetFolder(destFolder);
285 if (destFolder != null) 283 if (destFolder != null)
286 { 284 {
287 if (folder.ParentID != destFolder.ID) 285 if (folder.ParentID != destFolder.ID)
@@ -339,8 +337,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
339 337
340 UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip 338 UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip
341 339
342 InventoryItemBase item = new InventoryItemBase(inventoryID, client.AgentId); 340 InventoryItemBase item = invService.GetItem(client.AgentId, inventoryID);
343 item = invService.GetItem(item);
344 InventoryFolderBase folder = null; 341 InventoryFolderBase folder = null;
345 UUID? previousParentFolderID = null; 342 UUID? previousParentFolderID = null;
346 343
@@ -354,8 +351,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
354 } 351 }
355 else 352 else
356 { 353 {
357 folder = new InventoryFolderBase(inventoryID, client.AgentId); 354 folder = invService.GetFolder(client.AgentId, inventoryID);
358 folder = invService.GetFolder(folder);
359 355
360 if (folder != null) // It's a folder 356 if (folder != null) // It's a folder
361 { 357 {
@@ -368,9 +364,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
368 // Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code). 364 // Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code).
369 if (previousParentFolderID != null) 365 if (previousParentFolderID != null)
370 { 366 {
371 InventoryFolderBase previousParentFolder 367 InventoryFolderBase previousParentFolder = invService.GetFolder(client.AgentId, (UUID)previousParentFolderID);
372 = new InventoryFolderBase((UUID)previousParentFolderID, client.AgentId);
373 previousParentFolder = invService.GetFolder(previousParentFolder);
374 scene.SendInventoryUpdate(client, previousParentFolder, true, true); 368 scene.SendInventoryUpdate(client, previousParentFolder, true, true);
375 369
376 scene.SendInventoryUpdate(client, destinationFolder, true, true); 370 scene.SendInventoryUpdate(client, destinationFolder, true, true);
@@ -392,8 +386,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
392 386
393 UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip 387 UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip
394 388
395 InventoryItemBase item = new InventoryItemBase(inventoryID, client.AgentId); 389 InventoryItemBase item = invService.GetItem(client.AgentId, inventoryID);
396 item = invService.GetItem(item);
397 InventoryFolderBase folder = null; 390 InventoryFolderBase folder = null;
398 UUID? previousParentFolderID = null; 391 UUID? previousParentFolderID = null;
399 392
@@ -410,8 +403,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
410 } 403 }
411 else 404 else
412 { 405 {
413 folder = new InventoryFolderBase(inventoryID, client.AgentId); 406 folder = invService.GetFolder(client.AgentId, inventoryID);
414 folder = invService.GetFolder(folder);
415 407
416 if (folder != null & trashFolder != null) 408 if (folder != null & trashFolder != null)
417 { 409 {
@@ -439,9 +431,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
439 // Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code). 431 // Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code).
440 else if (previousParentFolderID != null) 432 else if (previousParentFolderID != null)
441 { 433 {
442 InventoryFolderBase previousParentFolder 434 InventoryFolderBase previousParentFolder = invService.GetFolder(client.AgentId, (UUID)previousParentFolderID);
443 = new InventoryFolderBase((UUID)previousParentFolderID, client.AgentId);
444 previousParentFolder = invService.GetFolder(previousParentFolder);
445 scene.SendInventoryUpdate(client, previousParentFolder, true, true); 435 scene.SendInventoryUpdate(client, previousParentFolder, true, true);
446 436
447 scene.SendInventoryUpdate(client, trashFolder, true, true); 437 scene.SendInventoryUpdate(client, trashFolder, true, true);
@@ -500,10 +490,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
500 { 490 {
501 UUID folderID = new UUID(im.binaryBucket, 1); 491 UUID folderID = new UUID(im.binaryBucket, 1);
502 492
503 InventoryFolderBase given =
504 new InventoryFolderBase(folderID, recipientID);
505 InventoryFolderBase folder = 493 InventoryFolderBase folder =
506 scene.InventoryService.GetFolder(given); 494 scene.InventoryService.GetFolder(recipientID, folderID);
507 495
508 if (folder != null) 496 if (folder != null)
509 user.ControllingClient.SendBulkUpdateInventory(folder); 497 user.ControllingClient.SendBulkUpdateInventory(folder);
@@ -512,10 +500,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
512 { 500 {
513 UUID itemID = new UUID(im.binaryBucket, 1); 501 UUID itemID = new UUID(im.binaryBucket, 1);
514 502
515 InventoryItemBase given =
516 new InventoryItemBase(itemID, recipientID);
517 InventoryItemBase item = 503 InventoryItemBase item =
518 scene.InventoryService.GetItem(given); 504 scene.InventoryService.GetItem(recipientID, itemID);
519 505
520 if (item != null) 506 if (item != null)
521 { 507 {
@@ -538,10 +524,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
538 { 524 {
539 UUID folderID = new UUID(im.imSessionID); 525 UUID folderID = new UUID(im.imSessionID);
540 526
541 InventoryFolderBase given =
542 new InventoryFolderBase(folderID, recipientID);
543 InventoryFolderBase folder = 527 InventoryFolderBase folder =
544 scene.InventoryService.GetFolder(given); 528 scene.InventoryService.GetFolder(recipientID, folderID);
545 529
546 if (folder != null) 530 if (folder != null)
547 user.ControllingClient.SendBulkUpdateInventory(folder); 531 user.ControllingClient.SendBulkUpdateInventory(folder);
@@ -550,10 +534,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
550 { 534 {
551 UUID itemID = new UUID(im.imSessionID); 535 UUID itemID = new UUID(im.imSessionID);
552 536
553 InventoryItemBase given =
554 new InventoryItemBase(itemID, recipientID);
555 InventoryItemBase item = 537 InventoryItemBase item =
556 scene.InventoryService.GetItem(given); 538 scene.InventoryService.GetItem(recipientID, itemID);
557 539
558 if (item != null) 540 if (item != null)
559 { 541 {
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
95 95
96 foreach (AvatarAttachment att in a.GetAttachments()) 96 foreach (AvatarAttachment att in a.GetAttachments())
97 { 97 {
98 InventoryItemBase item = new InventoryItemBase(att.ItemID, account.PrincipalID); 98 InventoryItemBase item = Scene.InventoryService.GetItem(account.PrincipalID, att.ItemID);
99 item = Scene.InventoryService.GetItem(item);
100 if (item != null) 99 if (item != null)
101 a.SetAttachment(att.AttachPoint, att.ItemID, item.AssetID); 100 a.SetAttachment(att.AttachPoint, att.ItemID, item.AssetID);
102 else 101 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
314 314
315 //if (fromTaskID.Equals(UUID.Zero)) 315 //if (fromTaskID.Equals(UUID.Zero))
316 //{ 316 //{
317 InventoryItemBase item = new InventoryItemBase(itemID); 317 InventoryItemBase item = m_Scene.InventoryService.GetItem(remoteClient.AgentId, itemID);
318 item.Owner = remoteClient.AgentId;
319 item = m_Scene.InventoryService.GetItem(item);
320 //if (item == null) 318 //if (item == null)
321 //{ // Fetch the item 319 //{ // Fetch the item
322 // item = new InventoryItemBase(); 320 // 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
184 if (!m_Scene.Permissions.CanCreateUserInventory(invType, remoteClient.AgentId)) 184 if (!m_Scene.Permissions.CanCreateUserInventory(invType, remoteClient.AgentId))
185 return; 185 return;
186 186
187 InventoryFolderBase f = new InventoryFolderBase(folderID, remoteClient.AgentId); 187 InventoryFolderBase folder = m_Scene.InventoryService.GetFolder(remoteClient.AgentId, folderID);
188 InventoryFolderBase folder = m_Scene.InventoryService.GetFolder(f);
189 188
190 if (folder == null && Enum.IsDefined(typeof(FolderType), (sbyte)invType)) 189 if (folder == null && Enum.IsDefined(typeof(FolderType), (sbyte)invType))
191 { 190 {
@@ -260,8 +259,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
260 /// <returns></returns> 259 /// <returns></returns>
261 public virtual UUID CapsUpdateInventoryItemAsset(IClientAPI remoteClient, UUID itemID, byte[] data) 260 public virtual UUID CapsUpdateInventoryItemAsset(IClientAPI remoteClient, UUID itemID, byte[] data)
262 { 261 {
263 InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId); 262 InventoryItemBase item = m_Scene.InventoryService.GetItem(remoteClient.AgentId, itemID);
264 item = m_Scene.InventoryService.GetItem(item);
265 263
266 if (item.Owner != remoteClient.AgentId) 264 if (item.Owner != remoteClient.AgentId)
267 return UUID.Zero; 265 return UUID.Zero;
@@ -719,8 +717,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
719 717
720 if (DeRezAction.SaveToExistingUserInventoryItem == action) 718 if (DeRezAction.SaveToExistingUserInventoryItem == action)
721 { 719 {
722 item = new InventoryItemBase(so.RootPart.FromUserInventoryItemID, userID); 720 item = m_Scene.InventoryService.GetItem(userID, so.RootPart.FromUserInventoryItemID);
723 item = m_Scene.InventoryService.GetItem(item);
724 721
725 //item = userInfo.RootFolder.FindItem( 722 //item = userInfo.RootFolder.FindItem(
726 // objectGroup.RootPart.FromUserInventoryItemID); 723 // objectGroup.RootPart.FromUserInventoryItemID);
@@ -792,9 +789,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
792 { 789 {
793 if (so.FromFolderID != UUID.Zero && so.RootPart.OwnerID == remoteClient.AgentId) 790 if (so.FromFolderID != UUID.Zero && so.RootPart.OwnerID == remoteClient.AgentId)
794 { 791 {
795 InventoryFolderBase f = new InventoryFolderBase(so.FromFolderID, userID); 792 folder = m_Scene.InventoryService.GetFolder(userID, so.FromFolderID);
796 if (f != null)
797 folder = m_Scene.InventoryService.GetFolder(f);
798 793
799 if(folder.Type == 14 || folder.Type == 16) 794 if(folder.Type == 14 || folder.Type == 16)
800 { 795 {
@@ -830,8 +825,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
830 bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) 825 bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment)
831 { 826 {
832// m_log.DebugFormat("[INVENTORY ACCESS MODULE]: RezObject for {0}, item {1}", remoteClient.Name, itemID); 827// m_log.DebugFormat("[INVENTORY ACCESS MODULE]: RezObject for {0}, item {1}", remoteClient.Name, itemID);
833 InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId); 828 InventoryItemBase item = m_Scene.InventoryService.GetItem(remoteClient.AgentId, itemID);
834 item = m_Scene.InventoryService.GetItem(item);
835 829
836 if (item == null) 830 if (item == null)
837 { 831 {
@@ -1289,8 +1283,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
1289 protected virtual InventoryItemBase GetItem(UUID agentID, UUID itemID) 1283 protected virtual InventoryItemBase GetItem(UUID agentID, UUID itemID)
1290 { 1284 {
1291 IInventoryService invService = m_Scene.RequestModuleInterface<IInventoryService>(); 1285 IInventoryService invService = m_Scene.RequestModuleInterface<IInventoryService>();
1292 InventoryItemBase item = new InventoryItemBase(itemID, agentID); 1286 InventoryItemBase item = invService.GetItem(agentID, itemID);
1293 item = invService.GetItem(item);
1294 1287
1295 if (item != null && item.CreatorData != null && item.CreatorData != string.Empty) 1288 if (item != null && item.CreatorData != null && item.CreatorData != string.Empty)
1296 UserManagementModule.AddUser(item.CreatorIdAsUuid, item.CreatorData); 1289 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
103 { 103 {
104 InventoryItemBase[] itemColl = new InventoryItemBase[itemIDs.Length]; 104 InventoryItemBase[] itemColl = new InventoryItemBase[itemIDs.Length];
105 int i = 0; 105 int i = 0;
106 InventoryItemBase item = new InventoryItemBase();
107 item.Owner = principalID;
108 foreach (UUID fid in itemIDs) 106 foreach (UUID fid in itemIDs)
109 { 107 itemColl[i++] = GetItem(principalID, fid);
110 item.ID = fid;
111 itemColl[i++] = GetItem(item);
112 }
113 108
114 return itemColl; 109 return itemColl;
115 } 110 }
@@ -239,14 +234,14 @@ namespace OpenSim.Region.CoreModules.Framework.Library
239 /// </summary> 234 /// </summary>
240 /// <param name="item"></param> 235 /// <param name="item"></param>
241 /// <returns></returns> 236 /// <returns></returns>
242 public InventoryItemBase GetItem(InventoryItemBase item) { return null; } 237 public InventoryItemBase GetItem(UUID principalID, UUID itemID) { return null; }
243 238
244 /// <summary> 239 /// <summary>
245 /// Get a folder, given by its UUID 240 /// Get a folder, given by its UUID
246 /// </summary> 241 /// </summary>
247 /// <param name="folder"></param> 242 /// <param name="folder"></param>
248 /// <returns></returns> 243 /// <returns></returns>
249 public InventoryFolderBase GetFolder(InventoryFolderBase folder) { return null; } 244 public InventoryFolderBase GetFolder(UUID principalID, UUID folderID) { return null; }
250 245
251 /// <summary> 246 /// <summary>
252 /// Does the given user have an inventory structure? 247 /// Does the given user have an inventory structure?
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
index 48f228a..863560b 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
@@ -598,21 +598,19 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
598 return connector.DeleteItems(ownerID, itemIDs); 598 return connector.DeleteItems(ownerID, itemIDs);
599 } 599 }
600 600
601 public InventoryItemBase GetItem(InventoryItemBase item) 601 public InventoryItemBase GetItem(UUID principalID, UUID itemID)
602 { 602 {
603 if (item == null)
604 return null;
605 //m_log.Debug("[HG INVENTORY CONNECTOR]: GetItem " + item.ID); 603 //m_log.Debug("[HG INVENTORY CONNECTOR]: GetItem " + item.ID);
606 604
607 string invURL = GetInventoryServiceURL(item.Owner); 605 string invURL = GetInventoryServiceURL(principalID);
608 606
609 if (invURL == null) // not there, forward to local inventory connector to resolve 607 if (invURL == null) // not there, forward to local inventory connector to resolve
610 lock (m_Lock) 608 lock (m_Lock)
611 return m_LocalGridInventoryService.GetItem(item); 609 return m_LocalGridInventoryService.GetItem(principalID, itemID);
612 610
613 IInventoryService connector = GetConnector(invURL); 611 IInventoryService connector = GetConnector(invURL);
614 612
615 return connector.GetItem(item); 613 return connector.GetItem(principalID, itemID);
616 } 614 }
617 615
618 public InventoryItemBase[] GetMultipleItems(UUID userID, UUID[] itemIDs) 616 public InventoryItemBase[] GetMultipleItems(UUID userID, UUID[] itemIDs)
@@ -632,22 +630,19 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
632 return connector.GetMultipleItems(userID, itemIDs); 630 return connector.GetMultipleItems(userID, itemIDs);
633 } 631 }
634 632
635 public InventoryFolderBase GetFolder(InventoryFolderBase folder) 633 public InventoryFolderBase GetFolder(UUID principalID, UUID folderID)
636 { 634 {
637 if (folder == null)
638 return null;
639
640 //m_log.Debug("[HG INVENTORY CONNECTOR]: GetFolder " + folder.ID); 635 //m_log.Debug("[HG INVENTORY CONNECTOR]: GetFolder " + folder.ID);
641 636
642 string invURL = GetInventoryServiceURL(folder.Owner); 637 string invURL = GetInventoryServiceURL(principalID);
643 638
644 if (invURL == null) // not there, forward to local inventory connector to resolve 639 if (invURL == null) // not there, forward to local inventory connector to resolve
645 lock (m_Lock) 640 lock (m_Lock)
646 return m_LocalGridInventoryService.GetFolder(folder); 641 return m_LocalGridInventoryService.GetFolder(principalID, folderID);
647 642
648 IInventoryService connector = GetConnector(invURL); 643 IInventoryService connector = GetConnector(invURL);
649 644
650 return connector.GetFolder(folder); 645 return connector.GetFolder(principalID, folderID);
651 } 646 }
652 647
653 public bool HasInventoryForUser(UUID userID) 648 public bool HasInventoryForUser(UUID userID)
@@ -710,4 +705,4 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
710 return connector; 705 return connector;
711 } 706 }
712 } 707 }
713} \ No newline at end of file 708}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
index 20d4e02..0d36725 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
@@ -292,13 +292,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
292 return m_InventoryService.DeleteItems(ownerID, itemIDs); 292 return m_InventoryService.DeleteItems(ownerID, itemIDs);
293 } 293 }
294 294
295 public InventoryItemBase GetItem(InventoryItemBase item) 295 public InventoryItemBase GetItem(UUID principalID, UUID itemID)
296 { 296 {
297// m_log.DebugFormat("[LOCAL INVENTORY SERVICES CONNECTOR]: Requesting inventory item {0}", item.ID); 297// m_log.DebugFormat("[LOCAL INVENTORY SERVICES CONNECTOR]: Requesting inventory item {0}", item.ID);
298 298
299// UUID requestedItemId = item.ID; 299// UUID requestedItemId = item.ID;
300 300
301 item = m_InventoryService.GetItem(item); 301 InventoryItemBase item = m_InventoryService.GetItem(principalID, itemID);
302 302
303// if (null == item) 303// if (null == item)
304// m_log.ErrorFormat( 304// m_log.ErrorFormat(
@@ -312,9 +312,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
312 return m_InventoryService.GetMultipleItems(userID, itemIDs); 312 return m_InventoryService.GetMultipleItems(userID, itemIDs);
313 } 313 }
314 314
315 public InventoryFolderBase GetFolder(InventoryFolderBase folder) 315 public InventoryFolderBase GetFolder(UUID principalID, UUID folderID)
316 { 316 {
317 return m_InventoryService.GetFolder(folder); 317 return m_InventoryService.GetFolder(principalID, folderID);
318 } 318 }
319 319
320 /// <summary> 320 /// <summary>
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs
index 978b9d9..62b44b1 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs
@@ -292,15 +292,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
292 return m_RemoteConnector.DeleteItems(ownerID, itemIDs); 292 return m_RemoteConnector.DeleteItems(ownerID, itemIDs);
293 } 293 }
294 294
295 public InventoryItemBase GetItem(InventoryItemBase item) 295 public InventoryItemBase GetItem(UUID userID, UUID itemID)
296 { 296 {
297 //m_log.DebugFormat("[XINVENTORY CONNECTOR]: GetItem {0}", item.ID); 297 //m_log.DebugFormat("[XINVENTORY CONNECTOR]: GetItem {0}", item.ID);
298 if (item == null)
299 return null;
300 298
301 if (m_RemoteConnector == null) 299 if (m_RemoteConnector == null)
302 m_log.DebugFormat("[XINVENTORY CONNECTOR]: connector stub is null!!!"); 300 m_log.DebugFormat("[XINVENTORY CONNECTOR]: connector stub is null!!!");
303 return m_RemoteConnector.GetItem(item); 301 return m_RemoteConnector.GetItem(userID, itemID);
304 } 302 }
305 303
306 public InventoryItemBase[] GetMultipleItems(UUID userID, UUID[] itemIDs) 304 public InventoryItemBase[] GetMultipleItems(UUID userID, UUID[] itemIDs)
@@ -311,13 +309,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
311 return m_RemoteConnector.GetMultipleItems(userID, itemIDs); 309 return m_RemoteConnector.GetMultipleItems(userID, itemIDs);
312 } 310 }
313 311
314 public InventoryFolderBase GetFolder(InventoryFolderBase folder) 312 public InventoryFolderBase GetFolder(UUID userID, UUID folderID)
315 { 313 {
316 //m_log.DebugFormat("[XINVENTORY CONNECTOR]: GetFolder {0}", folder.ID); 314 //m_log.DebugFormat("[XINVENTORY CONNECTOR]: GetFolder {0}", folder.ID);
317 if (folder == null)
318 return null;
319 315
320 return m_RemoteConnector.GetFolder(folder); 316 return m_RemoteConnector.GetFolder(userID, folderID);
321 } 317 }
322 318
323 public bool HasInventoryForUser(UUID userID) 319 public bool HasInventoryForUser(UUID userID)
@@ -337,4 +333,4 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
337 333
338 #endregion 334 #endregion
339 } 335 }
340} \ No newline at end of file 336}
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
index c83454e..8c1a628 100644
--- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
@@ -1100,8 +1100,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
1100 if (objectID == UUID.Zero) // User inventory 1100 if (objectID == UUID.Zero) // User inventory
1101 { 1101 {
1102 IInventoryService invService = m_scene.InventoryService; 1102 IInventoryService invService = m_scene.InventoryService;
1103 InventoryItemBase assetRequestItem = new InventoryItemBase(notecard, user); 1103 InventoryItemBase assetRequestItem = invService.GetItem(user, notecard);
1104 assetRequestItem = invService.GetItem(assetRequestItem);
1105 if (assetRequestItem == null && LibraryRootFolder != null) // Library item 1104 if (assetRequestItem == null && LibraryRootFolder != null) // Library item
1106 { 1105 {
1107 assetRequestItem = LibraryRootFolder.FindItem(notecard); 1106 assetRequestItem = LibraryRootFolder.FindItem(notecard);
@@ -1625,8 +1624,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
1625 if (objectID == UUID.Zero) // User inventory 1624 if (objectID == UUID.Zero) // User inventory
1626 { 1625 {
1627 IInventoryService invService = m_scene.InventoryService; 1626 IInventoryService invService = m_scene.InventoryService;
1628 InventoryItemBase assetRequestItem = new InventoryItemBase(script, user); 1627 InventoryItemBase assetRequestItem = invService.GetItem(user, script);
1629 assetRequestItem = invService.GetItem(assetRequestItem);
1630 if (assetRequestItem == null && LibraryRootFolder != null) // Library item 1628 if (assetRequestItem == null && LibraryRootFolder != null) // Library item
1631 { 1629 {
1632 assetRequestItem = LibraryRootFolder.FindItem(script); 1630 assetRequestItem = LibraryRootFolder.FindItem(script);
@@ -1722,8 +1720,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
1722 if (objectID == UUID.Zero) // User inventory 1720 if (objectID == UUID.Zero) // User inventory
1723 { 1721 {
1724 IInventoryService invService = m_scene.InventoryService; 1722 IInventoryService invService = m_scene.InventoryService;
1725 InventoryItemBase assetRequestItem = new InventoryItemBase(notecard, user); 1723 InventoryItemBase assetRequestItem = invService.GetItem(user, notecard);
1726 assetRequestItem = invService.GetItem(assetRequestItem);
1727 if (assetRequestItem == null && LibraryRootFolder != null) // Library item 1724 if (assetRequestItem == null && LibraryRootFolder != null) // Library item
1728 { 1725 {
1729 assetRequestItem = LibraryRootFolder.FindItem(notecard); 1726 assetRequestItem = LibraryRootFolder.FindItem(notecard);