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