mirror of
https://github.com/opensim/opensim.git
synced 2026-08-11 11:57:03 +08:00
Add QueryItem method to secure inventory and HG inventory, change method sig to
provide additional information the HG needs.
This commit is contained in:
@@ -317,6 +317,29 @@ namespace OpenSim.Region.Communications.Hypergrid
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public InventoryItemBase QueryItem(InventoryItemBase item, UUID session_id)
|
||||
{
|
||||
if (IsLocalStandaloneUser(item.Owner))
|
||||
{
|
||||
return base.QueryItem(item);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
string invServ = GetUserInventoryURI(item.Owner);
|
||||
|
||||
return SynchronousRestSessionObjectPoster<InventoryItemBase, InventoryItemBase>.BeginPostObject(
|
||||
"POST", invServ + "/QueryItem/", item, session_id.ToString(), item.Owner.ToString());
|
||||
}
|
||||
catch (WebException e)
|
||||
{
|
||||
m_log.ErrorFormat("[HGrid INVENTORY SERVICE]: Query inventory item operation failed, {0} {1}",
|
||||
e.Source, e.Message);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Methods common to ISecureInventoryService and IInventoryService
|
||||
|
||||
@@ -296,6 +296,22 @@ namespace OpenSim.Region.Communications.OGS1
|
||||
return false;
|
||||
}
|
||||
|
||||
public InventoryItemBase QueryItem(InventoryItemBase item, UUID session_id)
|
||||
{
|
||||
try
|
||||
{
|
||||
return SynchronousRestSessionObjectPoster<InventoryItemBase, InventoryItemBase>.BeginPostObject(
|
||||
"POST", _inventoryServerUrl + "/QueryItem/", item, session_id.ToString(), item.Owner.ToString());
|
||||
}
|
||||
catch (WebException e)
|
||||
{
|
||||
m_log.ErrorFormat("[OGS1 INVENTORY SERVICE]: Query inventory item operation failed, {0} {1}",
|
||||
e.Source, e.Message);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public bool HasInventoryForUser(UUID userID)
|
||||
{
|
||||
return false;
|
||||
|
||||
@@ -433,10 +433,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
||||
else
|
||||
{
|
||||
UUID itemID = new UUID(msg.binaryBucket, 1);
|
||||
InventoryItemBase item = new InventoryItemBase();
|
||||
|
||||
item.ID = itemID;
|
||||
item.Owner = user.ControllingClient.AgentId;
|
||||
|
||||
// Fetch from database
|
||||
//
|
||||
if (!userInfo.QueryItem(itemID))
|
||||
if (!userInfo.QueryItem(item))
|
||||
{
|
||||
m_log.Debug("[INVENTORY TRANSFER] Can't find item to give");
|
||||
return;
|
||||
@@ -444,7 +448,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
||||
|
||||
// Get item info
|
||||
//
|
||||
InventoryItemBase item = userInfo.RootFolder.FindItem(itemID);
|
||||
item = userInfo.RootFolder.FindItem(item.ID);
|
||||
if (item == null)
|
||||
{
|
||||
m_log.Debug("[INVENTORY TRANSFER] Can't retrieve item to give");
|
||||
|
||||
Reference in New Issue
Block a user