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.
parent
6efc203ce8
commit
1d9a9e6004
|
@ -2040,7 +2040,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
deleteGroups.Add(grp);
|
deleteGroups.Add(grp);
|
||||||
|
|
||||||
// If child prims have invalid perms, fix them
|
// If child prims have invalid perms, fix them
|
||||||
grp.AdjustChildPrimPermissions();
|
grp.AdjustChildPrimPermissions(false);
|
||||||
|
|
||||||
if (remoteClient == null)
|
if (remoteClient == null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2352,7 +2352,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// objectGroup.m_rootPart = null;
|
// objectGroup.m_rootPart = null;
|
||||||
|
|
||||||
// If linking prims with different permissions, fix them
|
// If linking prims with different permissions, fix them
|
||||||
AdjustChildPrimPermissions();
|
AdjustChildPrimPermissions(false);
|
||||||
|
|
||||||
GroupContainsForeignPrims = true;
|
GroupContainsForeignPrims = true;
|
||||||
|
|
||||||
|
@ -2864,7 +2864,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AdjustChildPrimPermissions()
|
public void AdjustChildPrimPermissions(bool forceTaskInventoryPermissive)
|
||||||
{
|
{
|
||||||
uint newOwnerMask = (uint)(PermissionMask.All | PermissionMask.Export) & 0xfffffff8; // Mask folded bits
|
uint newOwnerMask = (uint)(PermissionMask.All | PermissionMask.Export) & 0xfffffff8; // Mask folded bits
|
||||||
uint foldedPerms = RootPart.OwnerMask & 3;
|
uint foldedPerms = RootPart.OwnerMask & 3;
|
||||||
|
@ -2874,6 +2874,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
newOwnerMask &= part.BaseMask;
|
newOwnerMask &= part.BaseMask;
|
||||||
if (part != RootPart)
|
if (part != RootPart)
|
||||||
part.ClonePermissions(RootPart);
|
part.ClonePermissions(RootPart);
|
||||||
|
if (forceTaskInventoryPermissive)
|
||||||
|
part.Inventory.ApplyGodPermissions(part.BaseMask);
|
||||||
});
|
});
|
||||||
|
|
||||||
uint lockMask = ~(uint)(PermissionMask.Move | PermissionMask.Modify);
|
uint lockMask = ~(uint)(PermissionMask.Move | PermissionMask.Modify);
|
||||||
|
@ -2887,7 +2889,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
RootPart.UpdatePermissions(AgentID, field, localID, mask, addRemTF);
|
RootPart.UpdatePermissions(AgentID, field, localID, mask, addRemTF);
|
||||||
|
|
||||||
AdjustChildPrimPermissions();
|
AdjustChildPrimPermissions(Scene.Permissions.IsGod(AgentID));
|
||||||
|
|
||||||
HasGroupChanged = true;
|
HasGroupChanged = true;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue