aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie2010-01-28 14:34:31 +0000
committerMelanie2010-01-28 14:34:31 +0000
commitee12b00cfa829d798ebf6490a8297710047b8f5c (patch)
tree3f77866473325d94043314ad898176123426819a
parentMerge branch 'master' of melanie@opensimulator.org:/var/git/opensim (diff)
downloadopensim-SC_OLD-ee12b00cfa829d798ebf6490a8297710047b8f5c.zip
opensim-SC_OLD-ee12b00cfa829d798ebf6490a8297710047b8f5c.tar.gz
opensim-SC_OLD-ee12b00cfa829d798ebf6490a8297710047b8f5c.tar.bz2
opensim-SC_OLD-ee12b00cfa829d798ebf6490a8297710047b8f5c.tar.xz
Fixes inconsistencies in the permissions module. Adds a region_manager_is_god
configurable. Previously, estate managers could enter god mode, but would not have any powers. Now estate managers can enter god mode only if this option is true, and then will have real god powers.
-rw-r--r--OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs11
-rw-r--r--bin/OpenSim.ini.example1
2 files changed, 8 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
index 68e8485..5b15065 100644
--- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
@@ -127,6 +127,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
127 private bool m_debugPermissions = false; 127 private bool m_debugPermissions = false;
128 private bool m_allowGridGods = false; 128 private bool m_allowGridGods = false;
129 private bool m_RegionOwnerIsGod = false; 129 private bool m_RegionOwnerIsGod = false;
130 private bool m_RegionManagerIsGod = false;
130 private bool m_ParcelOwnerIsGod = false; 131 private bool m_ParcelOwnerIsGod = false;
131 132
132 /// <value> 133 /// <value>
@@ -167,6 +168,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
167 m_bypassPermissions = !myConfig.GetBoolean("serverside_object_permissions", false); 168 m_bypassPermissions = !myConfig.GetBoolean("serverside_object_permissions", false);
168 m_propagatePermissions = myConfig.GetBoolean("propagate_permissions", true); 169 m_propagatePermissions = myConfig.GetBoolean("propagate_permissions", true);
169 m_RegionOwnerIsGod = myConfig.GetBoolean("region_owner_is_god", true); 170 m_RegionOwnerIsGod = myConfig.GetBoolean("region_owner_is_god", true);
171 m_RegionManagerIsGod = myConfig.GetBoolean("region_manager_is_god", false);
170 m_ParcelOwnerIsGod = myConfig.GetBoolean("parcel_owner_is_god", true); 172 m_ParcelOwnerIsGod = myConfig.GetBoolean("parcel_owner_is_god", true);
171 173
172 m_allowedScriptCreators 174 m_allowedScriptCreators
@@ -528,10 +530,13 @@ namespace OpenSim.Region.CoreModules.World.Permissions
528 530
529 if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) 531 if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero)
530 { 532 {
531 if (m_scene.RegionInfo.EstateSettings.EstateOwner == user) 533 if (m_scene.RegionInfo.EstateSettings.EstateOwner == user && m_RegionOwnerIsGod)
532 return true; 534 return true;
533 } 535 }
534 536
537 if (IsEstateManager(user) && m_RegionManagerIsGod)
538 return true;
539
535 if (m_allowGridGods) 540 if (m_allowGridGods)
536 { 541 {
537 CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(user); 542 CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(user);
@@ -544,6 +549,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
544 549
545 return false; 550 return false;
546 } 551 }
552
547 protected bool IsFriendWithPerms(UUID user,UUID objectOwner) 553 protected bool IsFriendWithPerms(UUID user,UUID objectOwner)
548 { 554 {
549 555
@@ -948,9 +954,6 @@ namespace OpenSim.Region.CoreModules.World.Permissions
948 DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); 954 DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
949 if (m_bypassPermissions) return m_bypassPermissionsValue; 955 if (m_bypassPermissions) return m_bypassPermissionsValue;
950 956
951 if (IsEstateManager(user) && m_RegionOwnerIsGod)
952 return true;
953
954 return IsAdministrator(user); 957 return IsAdministrator(user);
955 } 958 }
956 959
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index 179c536..ebc9b24 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -207,6 +207,7 @@
207 ; This allows somne control over permissions 207 ; This allows somne control over permissions
208 ; please note that this still doesn't duplicate SL, and is not intended to 208 ; please note that this still doesn't duplicate SL, and is not intended to
209 ;region_owner_is_god = true 209 ;region_owner_is_god = true
210 ;region_manager_is_god = false
210 ;parcel_owner_is_god = true 211 ;parcel_owner_is_god = true
211 212
212 ; Control user types that are allowed to create new scripts 213 ; Control user types that are allowed to create new scripts