diff options
Export permission, part two. Setting export perms for textures and clothing works. Setting perms for prims also works but they don't propagate correctly yet.
NOT FOR PRODUCTIN USE. Your database will need to be updated before you can use this!
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 0621e2a..9e7a986 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -2671,11 +2671,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
2671 | 2671 | ||
2672 | public void AdjustChildPrimPermissions() | 2672 | public void AdjustChildPrimPermissions() |
2673 | { | 2673 | { |
2674 | uint newOwnerMask = (uint)(PermissionMask.All | PermissionMask.Export) & 0xfffffff8; // Mask folded bits | ||
2675 | uint foldedPerms = RootPart.OwnerMask & 3; | ||
2676 | |||
2674 | ForEachPart(part => | 2677 | ForEachPart(part => |
2675 | { | 2678 | { |
2679 | newOwnerMask &= part.BaseMask; | ||
2676 | if (part != RootPart) | 2680 | if (part != RootPart) |
2677 | part.ClonePermissions(RootPart); | 2681 | part.ClonePermissions(RootPart); |
2678 | }); | 2682 | }); |
2683 | |||
2684 | uint lockMask = ~(uint)PermissionMask.Move; | ||
2685 | uint lockBit = RootPart.OwnerMask & (uint)PermissionMask.Move; | ||
2686 | RootPart.OwnerMask = (RootPart.OwnerMask & lockBit) | ((newOwnerMask | foldedPerms) & lockMask); | ||
2687 | RootPart.ScheduleFullUpdate(); | ||
2679 | } | 2688 | } |
2680 | 2689 | ||
2681 | public void UpdatePermissions(UUID AgentID, byte field, uint localID, | 2690 | public void UpdatePermissions(UUID AgentID, byte field, uint localID, |