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.mysql-performance
parent
6478bc9fb0
commit
ee12b00cfa
|
@ -127,6 +127,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
|
|||
private bool m_debugPermissions = false;
|
||||
private bool m_allowGridGods = false;
|
||||
private bool m_RegionOwnerIsGod = false;
|
||||
private bool m_RegionManagerIsGod = false;
|
||||
private bool m_ParcelOwnerIsGod = false;
|
||||
|
||||
/// <value>
|
||||
|
@ -167,6 +168,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
|
|||
m_bypassPermissions = !myConfig.GetBoolean("serverside_object_permissions", false);
|
||||
m_propagatePermissions = myConfig.GetBoolean("propagate_permissions", true);
|
||||
m_RegionOwnerIsGod = myConfig.GetBoolean("region_owner_is_god", true);
|
||||
m_RegionManagerIsGod = myConfig.GetBoolean("region_manager_is_god", false);
|
||||
m_ParcelOwnerIsGod = myConfig.GetBoolean("parcel_owner_is_god", true);
|
||||
|
||||
m_allowedScriptCreators
|
||||
|
@ -528,10 +530,13 @@ namespace OpenSim.Region.CoreModules.World.Permissions
|
|||
|
||||
if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero)
|
||||
{
|
||||
if (m_scene.RegionInfo.EstateSettings.EstateOwner == user)
|
||||
if (m_scene.RegionInfo.EstateSettings.EstateOwner == user && m_RegionOwnerIsGod)
|
||||
return true;
|
||||
}
|
||||
|
||||
if (IsEstateManager(user) && m_RegionManagerIsGod)
|
||||
return true;
|
||||
|
||||
if (m_allowGridGods)
|
||||
{
|
||||
CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(user);
|
||||
|
@ -544,6 +549,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected bool IsFriendWithPerms(UUID user,UUID objectOwner)
|
||||
{
|
||||
|
||||
|
@ -948,9 +954,6 @@ namespace OpenSim.Region.CoreModules.World.Permissions
|
|||
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
|
||||
if (m_bypassPermissions) return m_bypassPermissionsValue;
|
||||
|
||||
if (IsEstateManager(user) && m_RegionOwnerIsGod)
|
||||
return true;
|
||||
|
||||
return IsAdministrator(user);
|
||||
}
|
||||
|
||||
|
|
|
@ -207,6 +207,7 @@
|
|||
; This allows somne control over permissions
|
||||
; please note that this still doesn't duplicate SL, and is not intended to
|
||||
;region_owner_is_god = true
|
||||
;region_manager_is_god = false
|
||||
;parcel_owner_is_god = true
|
||||
|
||||
; Control user types that are allowed to create new scripts
|
||||
|
|
Loading…
Reference in New Issue