diff options
author | Melanie | 2010-01-28 14:34:31 +0000 |
---|---|---|
committer | Melanie | 2010-01-28 14:34:31 +0000 |
commit | ee12b00cfa829d798ebf6490a8297710047b8f5c (patch) | |
tree | 3f77866473325d94043314ad898176123426819a | |
parent | Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim (diff) | |
download | opensim-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.cs | 11 | ||||
-rw-r--r-- | bin/OpenSim.ini.example | 1 |
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 |