mirror of
https://github.com/opensim/opensim.git
synced 2026-08-12 12:25:42 +08:00
If the owner of an object is taking a copy from the scene (e.g. via the "take copy" option on a viewer) then only require owner copy perms, not copy and transfer.
This matches Linden Lab behaviour and what was already possible via shift-copy. Transfer would not apply here as the owner and copier are the same. This is the only functional change, all other current take copy logic remains the same. Adds regression tests around relevant take copy cases.
This commit is contained in:
@@ -185,7 +185,7 @@ namespace OpenSim.Tests.Common
|
||||
|
||||
public void addInventoryItem(InventoryItemBase item)
|
||||
{
|
||||
// InventoryFolderBase folder = m_folders[item.Folder];
|
||||
InventoryFolderBase folder = m_folders[item.Folder];
|
||||
|
||||
// m_log.DebugFormat(
|
||||
// "[MOCK INV DB]: Adding inventory item {0} {1} in {2} {3}", item.Name, item.ID, folder.Name, folder.ID);
|
||||
|
||||
@@ -46,20 +46,33 @@ namespace OpenSim.Tests.Common
|
||||
|
||||
public XInventoryItem[] GetItems(string[] fields, string[] vals)
|
||||
{
|
||||
// Console.WriteLine(
|
||||
// "Requesting items, fields {0}, vals {1}", string.Join(", ", fields), string.Join(", ", vals));
|
||||
|
||||
List<XInventoryItem> origItems = Get<XInventoryItem>(fields, vals, m_allItems.Values.ToList());
|
||||
|
||||
return origItems.Select(i => i.Clone()).ToArray();
|
||||
XInventoryItem[] items = origItems.Select(i => i.Clone()).ToArray();
|
||||
|
||||
// Console.WriteLine("Found {0} items", items.Length);
|
||||
// Array.ForEach(items, i => Console.WriteLine("Found item {0} {1}", i.inventoryName, i.inventoryID));
|
||||
|
||||
return items;
|
||||
}
|
||||
|
||||
public XInventoryFolder[] GetFolders(string[] fields, string[] vals)
|
||||
{
|
||||
// Console.WriteLine(
|
||||
// "Requesting folders, fields {0}, vals {1}", string.Join(",", fields), string.Join(",", vals));
|
||||
// "Requesting folders, fields {0}, vals {1}", string.Join(", ", fields), string.Join(", ", vals));
|
||||
|
||||
List<XInventoryFolder> origFolders
|
||||
= Get<XInventoryFolder>(fields, vals, m_allFolders.Values.ToList());
|
||||
|
||||
return origFolders.Select(f => f.Clone()).ToArray();
|
||||
XInventoryFolder[] folders = origFolders.Select(f => f.Clone()).ToArray();
|
||||
|
||||
// Console.WriteLine("Found {0} folders", folders.Length);
|
||||
// Array.ForEach(folders, f => Console.WriteLine("Found folder {0} {1}", f.folderName, f.folderID));
|
||||
|
||||
return folders;
|
||||
}
|
||||
|
||||
public bool StoreFolder(XInventoryFolder folder)
|
||||
@@ -75,7 +88,9 @@ namespace OpenSim.Tests.Common
|
||||
{
|
||||
m_allItems[item.inventoryID] = item.Clone();
|
||||
|
||||
// Console.WriteLine("Added item {0} {1}, creator {2}, owner {3}", item.inventoryName, item.inventoryID, item.creatorID, item.avatarID);
|
||||
// Console.WriteLine(
|
||||
// "Added item {0} {1}, folder {2}, creator {3}, owner {4}",
|
||||
// item.inventoryName, item.inventoryID, item.parentFolderID, item.creatorID, item.avatarID);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user