From 673bd3721948b376d6be14e346d616863ca943cf Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Thu, 19 Jan 2017 12:35:00 +0000 Subject: object CanMove is for in scene SOGs Icleints and SPs and permitions module is NOT a shared module --- .../World/Permissions/PermissionsModule.cs | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index 3f310c7..4f62827 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs @@ -1420,28 +1420,21 @@ namespace OpenSim.Region.CoreModules.World.Permissions return GenericEstatePermission(user); } - private bool CanMoveObject(UUID objectID, UUID moverID, Scene scene) + private bool CanMoveObject(SceneObjectGroup sog, ScenePresence sp) { DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); + + if(sog == null || sog.IsDeleted || sp == null || sp.IsDeleted) + return false; + if (m_bypassPermissions) { - SceneObjectPart part = scene.GetSceneObjectPart(objectID); - if(part == null) + if (sog.OwnerID != sp.UUID && sog.IsAttachment) return false; - - if (part.OwnerID != moverID) - { - if (part.ParentGroup.IsDeleted || part.ParentGroup.IsAttachment) - return false; - } return m_bypassPermissionsValue; } - SceneObjectGroup sog = scene.GetGroupByPrim(objectID); - if (sog == null) - return false; - - uint perms = GetObjectPermissions(moverID, sog, true); + uint perms = GetObjectPermissions(sp, sog, true); if((perms & (uint)PermissionMask.Move) == 0) return false; return true; -- cgit v1.1