diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index f3c6a30e64..702398481e 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs @@ -677,18 +677,12 @@ namespace OpenSim.Region.CoreModules.World.Permissions bool permission = false; bool locked = false; - if (!m_scene.Entities.ContainsKey(objId)) - { - return false; - } + SceneObjectPart part = m_scene.GetSceneObjectPart(objId); - // If it's not an object, we cant edit it. - if ((!(m_scene.Entities[objId] is SceneObjectGroup))) - { + if (part == null) return false; - } - SceneObjectGroup group = (SceneObjectGroup)m_scene.Entities[objId]; + SceneObjectGroup group = part.ParentGroup; UUID objectOwner = group.OwnerID; locked = ((group.RootPart.OwnerMask & PERM_LOCKED) == 0); @@ -977,16 +971,6 @@ namespace OpenSim.Region.CoreModules.World.Permissions DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); if (m_bypassPermissions) return m_bypassPermissionsValue; - SceneObjectPart part = m_scene.GetSceneObjectPart(objectID); - - // If we selected a sub-prim to edit, the objectID won't represent the object, but only a part. - // We have to check the permissions of the group, though. - if (part.ParentID != 0) - { - objectID = part.ParentUUID; - part = m_scene.GetSceneObjectPart(objectID); - } - return GenericObjectPermission(editorID, objectID, false); } diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 6cc78b84b8..83e3a455d8 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs @@ -1146,17 +1146,7 @@ namespace OpenSim.Region.Framework.Scenes TaskInventoryItem taskItem = part.Inventory.GetInventoryItem(itemId); - if (null == taskItem) - { - m_log.WarnFormat("[PRIM INVENTORY]: Move of inventory item {0} from prim with local id {1} failed" - + " because the inventory item could not be found", - itemId, primLocalId); - - return; - } - - TaskInventoryItem item = part.Inventory.GetInventoryItem(itemId); - if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0) + if ((taskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0) { // If the item to be moved is no copy, we need to be able to // edit the prim.