diff options
-rw-r--r-- | OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs index eb078d6..acc88bf 100644 --- a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs | |||
@@ -659,7 +659,20 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
659 | private bool CanMoveObject(LLUUID objectID, LLUUID moverID, Scene scene) | 659 | private bool CanMoveObject(LLUUID objectID, LLUUID moverID, Scene scene) |
660 | { | 660 | { |
661 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | 661 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); |
662 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 662 | if (m_bypassPermissions) |
663 | { | ||
664 | SceneObjectPart part = scene.GetSceneObjectPart(objectID); | ||
665 | if (part.OwnerID != moverID) | ||
666 | { | ||
667 | if (part.ParentGroup != null && | ||
668 | part.ParentGroup.RootPart != null) | ||
669 | { | ||
670 | if (part.ParentGroup.RootPart.IsAttachment) | ||
671 | return false; | ||
672 | } | ||
673 | } | ||
674 | return m_bypassPermissionsValue; | ||
675 | } | ||
663 | 676 | ||
664 | bool permission = GenericObjectPermission(moverID, objectID, true); | 677 | bool permission = GenericObjectPermission(moverID, objectID, true); |
665 | if (!permission) | 678 | if (!permission) |