From db2fbf6516a055beb71de9b82a9773c29bf3a73d Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Tue, 17 Jan 2017 13:24:09 +0000 Subject: add more calls to effective permissions aggregation, some paths may still be missing on objects changes, but remove the aggregation on check paths, so all can be tested. --- OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 29d9f08..545d44b 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs @@ -807,6 +807,7 @@ namespace OpenSim.Region.Framework.Scenes else m_part.TriggerScriptChangedEvent(Changed.INVENTORY); + m_part.AggregateInnerPerms(); m_inventorySerial++; //m_inventorySerial += 2; HasInventoryChanged = true; @@ -829,7 +830,7 @@ namespace OpenSim.Region.Framework.Scenes // m_part.TriggerScriptChangedEvent(Changed.INVENTORY); } m_items.LockItemsForWrite(false); - + m_part.AggregateInnerPerms(); m_inventorySerial++; } @@ -1022,16 +1023,20 @@ namespace OpenSim.Region.Framework.Scenes item.AssetID = m_items[item.ItemID].AssetID; m_items[item.ItemID] = item; + m_inventorySerial++; if (fireScriptEvents) m_part.TriggerScriptChangedEvent(Changed.INVENTORY); if (considerChanged) { + m_part.AggregateInnerPerms(); + m_part.ParentGroup.AggregatePerms(); HasInventoryChanged = true; m_part.ParentGroup.HasGroupChanged = true; } m_items.LockItemsForWrite(false); + return true; } else @@ -1068,6 +1073,10 @@ namespace OpenSim.Region.Framework.Scenes m_items.LockItemsForWrite(true); m_items.Remove(itemID); m_items.LockItemsForWrite(false); + + m_part.AggregateInnerPerms(); + m_part.ParentGroup.AggregatePerms(); + m_inventorySerial++; m_part.TriggerScriptChangedEvent(Changed.INVENTORY); -- cgit v1.1