diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs | 64 |
1 files changed, 54 insertions, 10 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs index dd451ef..1c66254 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs | |||
@@ -290,7 +290,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
290 | 290 | ||
291 | public override List<InventoryItemBase> GetFolderItems(UUID userID, UUID folderID) | 291 | public override List<InventoryItemBase> GetFolderItems(UUID userID, UUID folderID) |
292 | { | 292 | { |
293 | return new List<InventoryItemBase>(); | 293 | if (IsLocalGridUser(userID)) |
294 | return m_GridService.GetFolderItems(userID, folderID); | ||
295 | else | ||
296 | { | ||
297 | UUID sessionID = GetSessionID(userID); | ||
298 | string uri = GetUserInventoryURI(userID) + "/" + userID; | ||
299 | return m_HGService.GetFolderItems(uri, folderID, sessionID); | ||
300 | } | ||
294 | } | 301 | } |
295 | 302 | ||
296 | public override bool AddFolder(InventoryFolderBase folder) | 303 | public override bool AddFolder(InventoryFolderBase folder) |
@@ -323,6 +330,23 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
323 | } | 330 | } |
324 | } | 331 | } |
325 | 332 | ||
333 | public override bool DeleteFolders(UUID ownerID, List<UUID> folderIDs) | ||
334 | { | ||
335 | if (folderIDs == null) | ||
336 | return false; | ||
337 | if (folderIDs.Count == 0) | ||
338 | return false; | ||
339 | |||
340 | if (IsLocalGridUser(ownerID)) | ||
341 | return m_GridService.DeleteFolders(ownerID, folderIDs); | ||
342 | else | ||
343 | { | ||
344 | UUID sessionID = GetSessionID(ownerID); | ||
345 | string uri = GetUserInventoryURI(ownerID) + "/" + ownerID.ToString(); | ||
346 | return m_HGService.DeleteFolders(uri, folderIDs, sessionID); | ||
347 | } | ||
348 | } | ||
349 | |||
326 | public override bool MoveFolder(InventoryFolderBase folder) | 350 | public override bool MoveFolder(InventoryFolderBase folder) |
327 | { | 351 | { |
328 | if (folder == null) | 352 | if (folder == null) |
@@ -386,18 +410,39 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
386 | } | 410 | } |
387 | } | 411 | } |
388 | 412 | ||
389 | public override bool DeleteItem(InventoryItemBase item) | 413 | public override bool MoveItems(UUID ownerID, List<InventoryItemBase> items) |
390 | { | 414 | { |
391 | if (item == null) | 415 | if (items == null) |
392 | return false; | 416 | return false; |
417 | if (items.Count == 0) | ||
418 | return true; | ||
393 | 419 | ||
394 | if (IsLocalGridUser(item.Owner)) | 420 | if (IsLocalGridUser(ownerID)) |
395 | return m_GridService.DeleteItem(item); | 421 | return m_GridService.MoveItems(ownerID, items); |
396 | else | 422 | else |
397 | { | 423 | { |
398 | UUID sessionID = GetSessionID(item.Owner); | 424 | UUID sessionID = GetSessionID(ownerID); |
399 | string uri = GetUserInventoryURI(item.Owner) + "/" + item.Owner.ToString(); | 425 | string uri = GetUserInventoryURI(ownerID) + "/" + ownerID.ToString(); |
400 | return m_HGService.DeleteItem(uri, item, sessionID); | 426 | return m_HGService.MoveItems(uri, items, sessionID); |
427 | } | ||
428 | } | ||
429 | |||
430 | public override bool DeleteItems(UUID ownerID, List<UUID> itemIDs) | ||
431 | { | ||
432 | m_log.DebugFormat("[HG INVENTORY CONNECTOR]: Delete {0} items for user {1}", itemIDs.Count, ownerID); | ||
433 | |||
434 | if (itemIDs == null) | ||
435 | return false; | ||
436 | if (itemIDs.Count == 0) | ||
437 | return true; | ||
438 | |||
439 | if (IsLocalGridUser(ownerID)) | ||
440 | return m_GridService.DeleteItems(ownerID, itemIDs); | ||
441 | else | ||
442 | { | ||
443 | UUID sessionID = GetSessionID(ownerID); | ||
444 | string uri = GetUserInventoryURI(ownerID) + "/" + ownerID.ToString(); | ||
445 | return m_HGService.DeleteItems(uri, itemIDs, sessionID); | ||
401 | } | 446 | } |
402 | } | 447 | } |
403 | 448 | ||
@@ -483,12 +528,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
483 | string userInventoryServerURI = HGNetworkServersInfo.ServerURI(uinfo.UserProfile.UserInventoryURI); | 528 | string userInventoryServerURI = HGNetworkServersInfo.ServerURI(uinfo.UserProfile.UserInventoryURI); |
484 | string uri = m_LocalGridInventoryURI.TrimEnd('/'); | 529 | string uri = m_LocalGridInventoryURI.TrimEnd('/'); |
485 | 530 | ||
486 | m_log.DebugFormat("[HG INVENTORY CONNECTOR]: IsLocalGridUser, comparing {0} to {1}.", userInventoryServerURI, uri); | ||
487 | |||
488 | if ((userInventoryServerURI == uri) || (userInventoryServerURI == "")) | 531 | if ((userInventoryServerURI == uri) || (userInventoryServerURI == "")) |
489 | { | 532 | { |
490 | return true; | 533 | return true; |
491 | } | 534 | } |
535 | m_log.DebugFormat("[HG INVENTORY CONNECTOR]: user {0} is foreign({1} - {2})", userID, userInventoryServerURI, uri); | ||
492 | return false; | 536 | return false; |
493 | } | 537 | } |
494 | 538 | ||