diff options
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index b86f349..bb9f457 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -2040,7 +2040,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2040 | deleteGroups.Add(grp); | 2040 | deleteGroups.Add(grp); |
2041 | 2041 | ||
2042 | // If child prims have invalid perms, fix them | 2042 | // If child prims have invalid perms, fix them |
2043 | grp.AdjustChildPrimPermissions(); | 2043 | grp.AdjustChildPrimPermissions(false); |
2044 | 2044 | ||
2045 | if (remoteClient == null) | 2045 | if (remoteClient == null) |
2046 | { | 2046 | { |
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 | ||