diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index f6c725b..b4a155e 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -2131,6 +2131,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2131 | // Can't do this yet since backup still makes use of the root part without any synchronization | 2131 | // Can't do this yet since backup still makes use of the root part without any synchronization |
2132 | // objectGroup.m_rootPart = null; | 2132 | // objectGroup.m_rootPart = null; |
2133 | 2133 | ||
2134 | // If linking prims with different permissions, fix them | ||
2135 | AdjustChildPrimPermissions(); | ||
2136 | |||
2134 | AttachToBackup(); | 2137 | AttachToBackup(); |
2135 | 2138 | ||
2136 | // Here's the deal, this is ABSOLUTELY CRITICAL so the physics scene gets the update about the | 2139 | // Here's the deal, this is ABSOLUTELY CRITICAL so the physics scene gets the update about the |
@@ -2622,12 +2625,21 @@ namespace OpenSim.Region.Framework.Scenes | |||
2622 | } | 2625 | } |
2623 | } | 2626 | } |
2624 | 2627 | ||
2628 | public void AdjustChildPrimPermissions() | ||
2629 | { | ||
2630 | ForEachPart(part => | ||
2631 | { | ||
2632 | if (part != RootPart) | ||
2633 | part.ClonePermissions(RootPart); | ||
2634 | }); | ||
2635 | } | ||
2636 | |||
2625 | public void UpdatePermissions(UUID AgentID, byte field, uint localID, | 2637 | public void UpdatePermissions(UUID AgentID, byte field, uint localID, |
2626 | uint mask, byte addRemTF) | 2638 | uint mask, byte addRemTF) |
2627 | { | 2639 | { |
2628 | SceneObjectPart[] parts = m_parts.GetArray(); | 2640 | RootPart.UpdatePermissions(AgentID, field, localID, mask, addRemTF); |
2629 | for (int i = 0; i < parts.Length; i++) | 2641 | |
2630 | parts[i].UpdatePermissions(AgentID, field, localID, mask, addRemTF); | 2642 | AdjustChildPrimPermissions(); |
2631 | 2643 | ||
2632 | HasGroupChanged = true; | 2644 | HasGroupChanged = true; |
2633 | 2645 | ||