diff options
author | Diva Canto | 2014-04-24 14:11:42 -0700 |
---|---|---|
committer | Diva Canto | 2014-04-24 14:11:42 -0700 |
commit | 1d9a9e6004e249100c96659fd1d71f6d5cee7bb1 (patch) | |
tree | 9eb175bcde50df527c59fefd1dd4b5ccae0f716f /OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |
parent | Fixed: hypergrid-linking stopped accepting the following format: "http://grid... (diff) | |
download | opensim-SC_OLD-1d9a9e6004e249100c96659fd1d71f6d5cee7bb1.zip opensim-SC_OLD-1d9a9e6004e249100c96659fd1d71f6d5cee7bb1.tar.gz opensim-SC_OLD-1d9a9e6004e249100c96659fd1d71f6d5cee7bb1.tar.bz2 opensim-SC_OLD-1d9a9e6004e249100c96659fd1d71f6d5cee7bb1.tar.xz |
Fixes a long-standing bug related to god-mode change ownership of objects permissive, where the permissions of the children prims' inventory items were not changed. As a consequence, we couldn't control some of the objects imported via HG and OARs even in god mode.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 529bc9f..0356599 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -2352,7 +2352,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2352 | // objectGroup.m_rootPart = null; | 2352 | // objectGroup.m_rootPart = null; |
2353 | 2353 | ||
2354 | // If linking prims with different permissions, fix them | 2354 | // If linking prims with different permissions, fix them |
2355 | AdjustChildPrimPermissions(); | 2355 | AdjustChildPrimPermissions(false); |
2356 | 2356 | ||
2357 | GroupContainsForeignPrims = true; | 2357 | GroupContainsForeignPrims = true; |
2358 | 2358 | ||
@@ -2864,7 +2864,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2864 | } | 2864 | } |
2865 | } | 2865 | } |
2866 | 2866 | ||
2867 | public void AdjustChildPrimPermissions() | 2867 | public void AdjustChildPrimPermissions(bool forceTaskInventoryPermissive) |
2868 | { | 2868 | { |
2869 | uint newOwnerMask = (uint)(PermissionMask.All | PermissionMask.Export) & 0xfffffff8; // Mask folded bits | 2869 | uint newOwnerMask = (uint)(PermissionMask.All | PermissionMask.Export) & 0xfffffff8; // Mask folded bits |
2870 | uint foldedPerms = RootPart.OwnerMask & 3; | 2870 | uint foldedPerms = RootPart.OwnerMask & 3; |
@@ -2874,6 +2874,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
2874 | newOwnerMask &= part.BaseMask; | 2874 | newOwnerMask &= part.BaseMask; |
2875 | if (part != RootPart) | 2875 | if (part != RootPart) |
2876 | part.ClonePermissions(RootPart); | 2876 | part.ClonePermissions(RootPart); |
2877 | if (forceTaskInventoryPermissive) | ||
2878 | part.Inventory.ApplyGodPermissions(part.BaseMask); | ||
2877 | }); | 2879 | }); |
2878 | 2880 | ||
2879 | uint lockMask = ~(uint)(PermissionMask.Move | PermissionMask.Modify); | 2881 | uint lockMask = ~(uint)(PermissionMask.Move | PermissionMask.Modify); |
@@ -2887,7 +2889,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2887 | { | 2889 | { |
2888 | RootPart.UpdatePermissions(AgentID, field, localID, mask, addRemTF); | 2890 | RootPart.UpdatePermissions(AgentID, field, localID, mask, addRemTF); |
2889 | 2891 | ||
2890 | AdjustChildPrimPermissions(); | 2892 | AdjustChildPrimPermissions(Scene.Permissions.IsGod(AgentID)); |
2891 | 2893 | ||
2892 | HasGroupChanged = true; | 2894 | HasGroupChanged = true; |
2893 | 2895 | ||