aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMelanie2010-01-28 14:34:31 +0000
committerMelanie2010-01-28 14:34:31 +0000
commitee12b00cfa829d798ebf6490a8297710047b8f5c (patch)
tree3f77866473325d94043314ad898176123426819a /OpenSim/Region
parentMerge branch 'master' of melanie@opensimulator.org:/var/git/opensim (diff)
downloadopensim-SC-ee12b00cfa829d798ebf6490a8297710047b8f5c.zip
opensim-SC-ee12b00cfa829d798ebf6490a8297710047b8f5c.tar.gz
opensim-SC-ee12b00cfa829d798ebf6490a8297710047b8f5c.tar.bz2
opensim-SC-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.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs11
1 files changed, 7 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