diff options
author | Melanie | 2012-10-08 01:34:32 +0200 |
---|---|---|
committer | Melanie | 2012-10-08 01:34:32 +0200 |
commit | 8894f4ad7735fc0a37fd62c89467163f6ec503cb (patch) | |
tree | dba7e4f64d8d4dc9c2d2a5769b391dc1197c6fe7 /OpenSim/Region/Framework | |
parent | Fix threading in remote asset connector (diff) | |
download | opensim-SC-8894f4ad7735fc0a37fd62c89467163f6ec503cb.zip opensim-SC-8894f4ad7735fc0a37fd62c89467163f6ec503cb.tar.gz opensim-SC-8894f4ad7735fc0a37fd62c89467163f6ec503cb.tar.bz2 opensim-SC-8894f4ad7735fc0a37fd62c89467163f6ec503cb.tar.xz |
Change permissions on child prim inventory items when god mode "force
permissive" is used.
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 4798481..9dd6639 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -3422,8 +3422,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
3422 | { | 3422 | { |
3423 | RootPart.UpdatePermissions(AgentID, field, localID, mask, addRemTF); | 3423 | RootPart.UpdatePermissions(AgentID, field, localID, mask, addRemTF); |
3424 | 3424 | ||
3425 | bool god = Scene.Permissions.IsGod(AgentID); | ||
3426 | |||
3425 | AdjustChildPrimPermissions(); | 3427 | AdjustChildPrimPermissions(); |
3426 | 3428 | ||
3429 | if (field == 1 && god) // Base mask was set. Update all child part inventories | ||
3430 | { | ||
3431 | foreach (SceneObjectPart part in Parts) | ||
3432 | part.Inventory.ApplyGodPermissions(RootPart.BaseMask); | ||
3433 | } | ||
3434 | |||
3427 | HasGroupChanged = true; | 3435 | HasGroupChanged = true; |
3428 | 3436 | ||
3429 | // Send the group's properties to all clients once all parts are updated | 3437 | // Send the group's properties to all clients once all parts are updated |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index e6ad89c..c2d4764 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -4460,7 +4460,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4460 | if (god) | 4460 | if (god) |
4461 | { | 4461 | { |
4462 | BaseMask = ApplyMask(BaseMask, set, mask); | 4462 | BaseMask = ApplyMask(BaseMask, set, mask); |
4463 | Inventory.ApplyGodPermissions(_baseMask); | 4463 | Inventory.ApplyGodPermissions(BaseMask); |
4464 | } | 4464 | } |
4465 | 4465 | ||
4466 | break; | 4466 | break; |
@@ -4479,7 +4479,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4479 | case 16: | 4479 | case 16: |
4480 | NextOwnerMask = ApplyMask(NextOwnerMask, set, mask) & | 4480 | NextOwnerMask = ApplyMask(NextOwnerMask, set, mask) & |
4481 | baseMask; | 4481 | baseMask; |
4482 | // Prevent the client from creating no mod, no copy | 4482 | // Prevent the client from creating no copy, no transfer |
4483 | // objects | 4483 | // objects |
4484 | if ((NextOwnerMask & (uint)PermissionMask.Copy) == 0) | 4484 | if ((NextOwnerMask & (uint)PermissionMask.Copy) == 0) |
4485 | NextOwnerMask |= (uint)PermissionMask.Transfer; | 4485 | NextOwnerMask |= (uint)PermissionMask.Transfer; |