Change permissions on child prim inventory items when god mode "force
permissive" is used.avinationmerge
parent
d5ea203f93
commit
8894f4ad77
|
@ -3422,8 +3422,16 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
RootPart.UpdatePermissions(AgentID, field, localID, mask, addRemTF);
|
RootPart.UpdatePermissions(AgentID, field, localID, mask, addRemTF);
|
||||||
|
|
||||||
|
bool god = Scene.Permissions.IsGod(AgentID);
|
||||||
|
|
||||||
AdjustChildPrimPermissions();
|
AdjustChildPrimPermissions();
|
||||||
|
|
||||||
|
if (field == 1 && god) // Base mask was set. Update all child part inventories
|
||||||
|
{
|
||||||
|
foreach (SceneObjectPart part in Parts)
|
||||||
|
part.Inventory.ApplyGodPermissions(RootPart.BaseMask);
|
||||||
|
}
|
||||||
|
|
||||||
HasGroupChanged = true;
|
HasGroupChanged = true;
|
||||||
|
|
||||||
// Send the group's properties to all clients once all parts are updated
|
// Send the group's properties to all clients once all parts are updated
|
||||||
|
|
|
@ -4460,7 +4460,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (god)
|
if (god)
|
||||||
{
|
{
|
||||||
BaseMask = ApplyMask(BaseMask, set, mask);
|
BaseMask = ApplyMask(BaseMask, set, mask);
|
||||||
Inventory.ApplyGodPermissions(_baseMask);
|
Inventory.ApplyGodPermissions(BaseMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -4479,7 +4479,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
case 16:
|
case 16:
|
||||||
NextOwnerMask = ApplyMask(NextOwnerMask, set, mask) &
|
NextOwnerMask = ApplyMask(NextOwnerMask, set, mask) &
|
||||||
baseMask;
|
baseMask;
|
||||||
// Prevent the client from creating no mod, no copy
|
// Prevent the client from creating no copy, no transfer
|
||||||
// objects
|
// objects
|
||||||
if ((NextOwnerMask & (uint)PermissionMask.Copy) == 0)
|
if ((NextOwnerMask & (uint)PermissionMask.Copy) == 0)
|
||||||
NextOwnerMask |= (uint)PermissionMask.Transfer;
|
NextOwnerMask |= (uint)PermissionMask.Transfer;
|
||||||
|
|
Loading…
Reference in New Issue