diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Permissions')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index ba38488..df9bad1 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 | |||
677 | bool permission = false; | 677 | bool permission = false; |
678 | bool locked = false; | 678 | bool locked = false; |
679 | 679 | ||
680 | if (!m_scene.Entities.ContainsKey(objId)) | 680 | SceneObjectPart part = m_scene.GetSceneObjectPart(objId); |
681 | { | ||
682 | return false; | ||
683 | } | ||
684 | 681 | ||
685 | // If it's not an object, we cant edit it. | 682 | if (part == null) |
686 | if ((!(m_scene.Entities[objId] is SceneObjectGroup))) | ||
687 | { | ||
688 | return false; | 683 | return false; |
689 | } | ||
690 | 684 | ||
691 | SceneObjectGroup group = (SceneObjectGroup)m_scene.Entities[objId]; | 685 | SceneObjectGroup group = part.ParentGroup; |
692 | 686 | ||
693 | UUID objectOwner = group.OwnerID; | 687 | UUID objectOwner = group.OwnerID; |
694 | locked = ((group.RootPart.OwnerMask & PERM_LOCKED) == 0); | 688 | locked = ((group.RootPart.OwnerMask & PERM_LOCKED) == 0); |
@@ -977,16 +971,6 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
977 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | 971 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); |
978 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 972 | if (m_bypassPermissions) return m_bypassPermissionsValue; |
979 | 973 | ||
980 | SceneObjectPart part = m_scene.GetSceneObjectPart(objectID); | ||
981 | |||
982 | // If we selected a sub-prim to edit, the objectID won't represent the object, but only a part. | ||
983 | // We have to check the permissions of the group, though. | ||
984 | if (part.ParentID != 0) | ||
985 | { | ||
986 | objectID = part.ParentUUID; | ||
987 | part = m_scene.GetSceneObjectPart(objectID); | ||
988 | } | ||
989 | |||
990 | return GenericObjectPermission(editorID, objectID, false); | 974 | return GenericObjectPermission(editorID, objectID, false); |
991 | } | 975 | } |
992 | 976 | ||