aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs8
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs4
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;