aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs10
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