diff options
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r-- | OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs index 2394a30..6107f48 100644 --- a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs | |||
@@ -66,6 +66,8 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
66 | private bool m_bypassPermissionsValue = true; | 66 | private bool m_bypassPermissionsValue = true; |
67 | private bool m_debugPermissions = false; | 67 | private bool m_debugPermissions = false; |
68 | private bool m_allowGridGods = false; | 68 | private bool m_allowGridGods = false; |
69 | private bool m_RegionOwnerIsGod = false; | ||
70 | private bool m_ParcelOwnerIsGod = false; | ||
69 | 71 | ||
70 | #endregion | 72 | #endregion |
71 | 73 | ||
@@ -142,6 +144,8 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
142 | m_allowGridGods = myConfig.GetBoolean("allow_grid_gods", false); | 144 | m_allowGridGods = myConfig.GetBoolean("allow_grid_gods", false); |
143 | 145 | ||
144 | m_bypassPermissions = !myConfig.GetBoolean("serverside_object_permissions", true); | 146 | m_bypassPermissions = !myConfig.GetBoolean("serverside_object_permissions", true); |
147 | m_RegionOwnerIsGod = myConfig.GetBoolean("region_owner_is_god", true); | ||
148 | m_ParcelOwnerIsGod = myConfig.GetBoolean("parcel_owner_is_god", true); | ||
145 | 149 | ||
146 | if (m_bypassPermissions) | 150 | if (m_bypassPermissions) |
147 | m_log.Info("[PERMISSIONS]: serviceside_object_permissions = false in ini file so disabling all region service permission checks"); | 151 | m_log.Info("[PERMISSIONS]: serviceside_object_permissions = false in ini file so disabling all region service permission checks"); |
@@ -238,7 +242,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
238 | { | 242 | { |
239 | if (m_scene.RegionInfo.MasterAvatarAssignedUUID != LLUUID.Zero) | 243 | if (m_scene.RegionInfo.MasterAvatarAssignedUUID != LLUUID.Zero) |
240 | { | 244 | { |
241 | if (m_scene.RegionInfo.MasterAvatarAssignedUUID == user) | 245 | if (m_RegionOwnerIsGod && (m_scene.RegionInfo.MasterAvatarAssignedUUID == user)) |
242 | return true; | 246 | return true; |
243 | } | 247 | } |
244 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != LLUUID.Zero) | 248 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != LLUUID.Zero) |
@@ -346,7 +350,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
346 | 350 | ||
347 | // Users should be able to edit what is over their land. | 351 | // Users should be able to edit what is over their land. |
348 | ILandObject parcel = m_scene.LandChannel.GetLandObject(task.AbsolutePosition.X, task.AbsolutePosition.Y); | 352 | ILandObject parcel = m_scene.LandChannel.GetLandObject(task.AbsolutePosition.X, task.AbsolutePosition.Y); |
349 | if (parcel != null && parcel.landData.OwnerID == user) | 353 | if (parcel != null && parcel.landData.OwnerID == user && m_ParcelOwnerIsGod) |
350 | return objectOwnerMask; | 354 | return objectOwnerMask; |
351 | 355 | ||
352 | // Admin objects should not be editable by the above | 356 | // Admin objects should not be editable by the above |
@@ -354,7 +358,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
354 | return objectEveryoneMask; | 358 | return objectEveryoneMask; |
355 | 359 | ||
356 | // Estate users should be able to edit anything in the sim | 360 | // Estate users should be able to edit anything in the sim |
357 | if (IsEstateManager(user)) | 361 | if (IsEstateManager(user) && m_RegionOwnerIsGod) |
358 | return objectOwnerMask; | 362 | return objectOwnerMask; |
359 | 363 | ||
360 | 364 | ||