From 3a8dd24fd1c1aead0a81a4a9d63b59bbf9f10855 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Thu, 4 May 2017 11:37:13 +0100 Subject: move deep effective permissions aggregation to first time use and not on changes. There flag it is need with InvalidateDeepEffectivePerms(). Add config options PropagateGroupShareOutwards and PropagateAnyOneOutwards --- OpenSim/Region/Framework/Scenes/Scene.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs') diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 715ae5c..205a321 100755 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -239,6 +239,16 @@ namespace OpenSim.Region.Framework.Scenes public bool LegacySitOffsets = true; /// + /// set false to not propagare group rights outwards as legacy did + /// + public bool PropagateGroupShareOutwards = true; + + /// + /// set false to not propagare Everyone rights outwards as legacy did + /// + public bool PropagateAnyOneOutwards = true; + + /// /// Can avatars cross from and to this region? /// public bool AllowAvatarCrossing { get; set; } @@ -978,7 +988,10 @@ namespace OpenSim.Region.Framework.Scenes m_maxDrawDistance = startupConfig.GetFloat("MaxDrawDistance", m_maxDrawDistance); m_maxRegionViewDistance = startupConfig.GetFloat("MaxRegionsViewDistance", m_maxRegionViewDistance); + // old versions compatibility LegacySitOffsets = startupConfig.GetBoolean("LegacySitOffsets", LegacySitOffsets); + PropagateGroupShareOutwards = startupConfig.GetBoolean("PropagateGroupShareOutwards", PropagateGroupShareOutwards); + PropagateAnyOneOutwards = startupConfig.GetBoolean("PropagateAnyOneOutwards", PropagateAnyOneOutwards); if (m_defaultDrawDistance > m_maxDrawDistance) m_defaultDrawDistance = m_maxDrawDistance; @@ -2390,8 +2403,9 @@ namespace OpenSim.Region.Framework.Scenes EventManager.TriggerOnSceneObjectLoaded(group); SceneObjectPart rootPart = group.GetPart(group.UUID); rootPart.Flags &= ~PrimFlags.Scripted; - group.AggregateDeepPerms(); + rootPart.TrimPermissions(); + group.InvalidateDeepEffectivePerms(); // Don't do this here - it will get done later on when sculpt data is loaded. // group.CheckSculptAndLoad(); @@ -2662,7 +2676,7 @@ namespace OpenSim.Region.Framework.Scenes if (UserManagementModule != null) sceneObject.RootPart.CreatorIdentification = UserManagementModule.GetUserUUI(ownerID); - sceneObject.AggregateDeepPerms(); + sceneObject.InvalidateDeepEffectivePerms();; sceneObject.ScheduleGroupForFullUpdate(); return sceneObject; -- cgit v1.1 From 04a50b47bfe2b10dfaad9fd67c2247ae40e97d84 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Thu, 4 May 2017 12:35:42 +0100 Subject: the new options i add where actually bad idea, they would make the compatibility issue ethernal. Removed and extended the ugly date hack to group share outwards propagation, until a better way is found at least --- OpenSim/Region/Framework/Scenes/Scene.cs | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs') diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 205a321..e709d6c 100755 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -239,16 +239,6 @@ namespace OpenSim.Region.Framework.Scenes public bool LegacySitOffsets = true; /// - /// set false to not propagare group rights outwards as legacy did - /// - public bool PropagateGroupShareOutwards = true; - - /// - /// set false to not propagare Everyone rights outwards as legacy did - /// - public bool PropagateAnyOneOutwards = true; - - /// /// Can avatars cross from and to this region? /// public bool AllowAvatarCrossing { get; set; } @@ -990,8 +980,6 @@ namespace OpenSim.Region.Framework.Scenes // old versions compatibility LegacySitOffsets = startupConfig.GetBoolean("LegacySitOffsets", LegacySitOffsets); - PropagateGroupShareOutwards = startupConfig.GetBoolean("PropagateGroupShareOutwards", PropagateGroupShareOutwards); - PropagateAnyOneOutwards = startupConfig.GetBoolean("PropagateAnyOneOutwards", PropagateAnyOneOutwards); if (m_defaultDrawDistance > m_maxDrawDistance) m_defaultDrawDistance = m_maxDrawDistance; -- cgit v1.1