aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/Hypergrid/HGStandaloneInventoryService.cs32
1 files changed, 32 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/Hypergrid/HGStandaloneInventoryService.cs b/OpenSim/Region/CoreModules/Hypergrid/HGStandaloneInventoryService.cs
index 879e885..b67f6f3 100644
--- a/OpenSim/Region/CoreModules/Hypergrid/HGStandaloneInventoryService.cs
+++ b/OpenSim/Region/CoreModules/Hypergrid/HGStandaloneInventoryService.cs
@@ -399,6 +399,7 @@ namespace OpenSim.Region.CoreModules.Hypergrid
399 } 399 }
400 400
401 } 401 }
402
402 public InventoryItemBase DeleteItem(InventoryItemBase item) 403 public InventoryItemBase DeleteItem(InventoryItemBase item)
403 { 404 {
404 item = m_inventoryService.GetInventoryItem(item.ID); 405 item = m_inventoryService.GetInventoryItem(item.ID);
@@ -411,6 +412,35 @@ namespace OpenSim.Region.CoreModules.Hypergrid
411 } 412 }
412 } 413 }
413 414
415 public InventoryItemBase CopyItem(InventoryItemBase olditem)
416 {
417 InventoryItemBase Item = m_inventoryService.GetInventoryItem(olditem.ID); // this is the old item id
418 // BIG HACK here
419 UUID newID = olditem.AssetID;
420 if (Item != null)
421 {
422 if (olditem.Name != String.Empty)
423 {
424 Item.Name = olditem.Name;
425 }
426 Item.ID = newID;
427 Item.Folder = olditem.Folder;
428 // There should be some tests here about the owner, etc but I'm going to ignore that
429 // because I'm not sure it makes any sense
430
431 // Also I should probably close the asset...
432 m_inventoryService.AddItem(Item);
433 return Item;
434 }
435 else
436 {
437 m_log.Debug("[HGStandaloneInvService]: Failed to find item " + olditem.ID);
438 olditem.ID = UUID.Zero;
439 return olditem;
440 }
441
442 }
443
414 /// <summary> 444 /// <summary>
415 /// Guid to UUID wrapper for same name IInventoryServices method 445 /// Guid to UUID wrapper for same name IInventoryServices method
416 /// </summary> 446 /// </summary>
@@ -650,6 +680,8 @@ namespace OpenSim.Region.CoreModules.Hypergrid
650 "POST", AddAndGetCapUrl(authToken, "/MoveItem/", caps), MoveItem, CheckAuthSession)); 680 "POST", AddAndGetCapUrl(authToken, "/MoveItem/", caps), MoveItem, CheckAuthSession));
651 httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryItemBase, InventoryItemBase>( 681 httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryItemBase, InventoryItemBase>(
652 "POST", AddAndGetCapUrl(authToken, "/DeleteItem/", caps), DeleteItem, CheckAuthSession)); 682 "POST", AddAndGetCapUrl(authToken, "/DeleteItem/", caps), DeleteItem, CheckAuthSession));
683 httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryItemBase, InventoryItemBase>(
684 "POST", AddAndGetCapUrl(authToken, "/CopyItem/", caps), CopyItem, CheckAuthSession));
653 685
654 httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryItemBase, AssetBase>( 686 httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryItemBase, AssetBase>(
655 "POST", AddAndGetCapUrl(authToken, "/GetAsset/", caps), GetAsset, CheckAuthSession)); 687 "POST", AddAndGetCapUrl(authToken, "/GetAsset/", caps), GetAsset, CheckAuthSession));