diff options
Merge branch 'master' into presence-refactor
This was a large, heavily conflicted merge and things MAY have got broken.
Please check!
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Permissions')
-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 72dd373..4652d70 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | |||
@@ -142,6 +142,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
142 | private bool m_debugPermissions = false; | 142 | private bool m_debugPermissions = false; |
143 | private bool m_allowGridGods = false; | 143 | private bool m_allowGridGods = false; |
144 | private bool m_RegionOwnerIsGod = false; | 144 | private bool m_RegionOwnerIsGod = false; |
145 | private bool m_RegionManagerIsGod = false; | ||
145 | private bool m_ParcelOwnerIsGod = false; | 146 | private bool m_ParcelOwnerIsGod = false; |
146 | 147 | ||
147 | /// <value> | 148 | /// <value> |
@@ -184,6 +185,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
184 | m_bypassPermissions = !myConfig.GetBoolean("serverside_object_permissions", false); | 185 | m_bypassPermissions = !myConfig.GetBoolean("serverside_object_permissions", false); |
185 | m_propagatePermissions = myConfig.GetBoolean("propagate_permissions", true); | 186 | m_propagatePermissions = myConfig.GetBoolean("propagate_permissions", true); |
186 | m_RegionOwnerIsGod = myConfig.GetBoolean("region_owner_is_god", true); | 187 | m_RegionOwnerIsGod = myConfig.GetBoolean("region_owner_is_god", true); |
188 | m_RegionManagerIsGod = myConfig.GetBoolean("region_manager_is_god", false); | ||
187 | m_ParcelOwnerIsGod = myConfig.GetBoolean("parcel_owner_is_god", true); | 189 | m_ParcelOwnerIsGod = myConfig.GetBoolean("parcel_owner_is_god", true); |
188 | 190 | ||
189 | m_allowedScriptCreators | 191 | m_allowedScriptCreators |
@@ -479,10 +481,13 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
479 | 481 | ||
480 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) | 482 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) |
481 | { | 483 | { |
482 | if (m_scene.RegionInfo.EstateSettings.EstateOwner == user) | 484 | if (m_scene.RegionInfo.EstateSettings.EstateOwner == user && m_RegionOwnerIsGod) |
483 | return true; | 485 | return true; |
484 | } | 486 | } |
485 | 487 | ||
488 | if (IsEstateManager(user) && m_RegionManagerIsGod) | ||
489 | return true; | ||
490 | |||
486 | if (m_allowGridGods) | 491 | if (m_allowGridGods) |
487 | { | 492 | { |
488 | UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, user); | 493 | UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, user); |
@@ -495,6 +500,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
495 | 500 | ||
496 | return false; | 501 | return false; |
497 | } | 502 | } |
503 | |||
498 | protected bool IsFriendWithPerms(UUID user,UUID objectOwner) | 504 | protected bool IsFriendWithPerms(UUID user,UUID objectOwner) |
499 | { | 505 | { |
500 | 506 | ||
@@ -896,9 +902,6 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
896 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | 902 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); |
897 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 903 | if (m_bypassPermissions) return m_bypassPermissionsValue; |
898 | 904 | ||
899 | if (IsEstateManager(user) && m_RegionOwnerIsGod) | ||
900 | return true; | ||
901 | |||
902 | return IsAdministrator(user); | 905 | return IsAdministrator(user); |
903 | } | 906 | } |
904 | 907 | ||