diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | 11 |
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 | ||