diff options
-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 |