aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorDiva Canto2014-04-24 14:11:42 -0700
committerDiva Canto2014-04-24 14:11:42 -0700
commit1d9a9e6004e249100c96659fd1d71f6d5cee7bb1 (patch)
tree9eb175bcde50df527c59fefd1dd4b5ccae0f716f /OpenSim/Region/Framework
parentFixed: hypergrid-linking stopped accepting the following format: "http://grid... (diff)
downloadopensim-SC-1d9a9e6004e249100c96659fd1d71f6d5cee7bb1.zip
opensim-SC-1d9a9e6004e249100c96659fd1d71f6d5cee7bb1.tar.gz
opensim-SC-1d9a9e6004e249100c96659fd1d71f6d5cee7bb1.tar.bz2
opensim-SC-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 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs8
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