Change permissions on child prim inventory items when god mode "force

permissive" is used.
avinationmerge
Melanie 2012-10-08 01:34:32 +02:00
parent d5ea203f93
commit 8894f4ad77
2 changed files with 10 additions and 2 deletions

View File

@ -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

View File

@ -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;