if you can't edit a prim's inventory, you don't need to see the asset ids.

Prevents stealing IDs of animations, sounds and textures from prim
inventories. Prevents copybot from gathering the wearable UUIDs needed for
pirating things from vendors.
viewer-2-initial-appearance
Melanie 2010-09-27 00:34:30 +01:00
parent 1f7d68e555
commit aaa4cb64a4
1 changed files with 11 additions and 3 deletions

View File

@ -811,8 +811,13 @@ namespace OpenSim.Region.Framework.Scenes
// isn't available (such as drag from prim inventory to agent inventory) // isn't available (such as drag from prim inventory to agent inventory)
InventoryStringBuilder invString = new InventoryStringBuilder(m_part.UUID, UUID.Zero); InventoryStringBuilder invString = new InventoryStringBuilder(m_part.UUID, UUID.Zero);
List<TaskInventoryItem> items = GetInventoryItems(); bool includeAssets = false;
foreach (TaskInventoryItem item in items) if (m_part.ParentGroup.Scene.Permissions.CanEditObjectInventory(m_part.UUID, client.AgentId))
includeAssets = true;
m_items.LockItemsForRead(true);
foreach (TaskInventoryItem item in m_items.Values)
{ {
UUID ownerID = item.OwnerID; UUID ownerID = item.OwnerID;
uint everyoneMask = 0; uint everyoneMask = 0;
@ -840,7 +845,10 @@ namespace OpenSim.Region.Framework.Scenes
invString.AddNameValueLine("group_id", item.GroupID.ToString()); invString.AddNameValueLine("group_id", item.GroupID.ToString());
invString.AddSectionEnd(); invString.AddSectionEnd();
invString.AddNameValueLine("asset_id", item.AssetID.ToString()); if (includeAssets)
invString.AddNameValueLine("asset_id", item.AssetID.ToString());
else
invString.AddNameValueLine("asset_id", UUID.Zero.ToString());
invString.AddNameValueLine("type", TaskInventoryItem.Types[item.Type]); invString.AddNameValueLine("type", TaskInventoryItem.Types[item.Type]);
invString.AddNameValueLine("inv_type", TaskInventoryItem.InvTypes[item.InvType]); invString.AddNameValueLine("inv_type", TaskInventoryItem.InvTypes[item.InvType]);
invString.AddNameValueLine("flags", Utils.UIntToHexString(item.Flags)); invString.AddNameValueLine("flags", Utils.UIntToHexString(item.Flags));