mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 08:55:56 +08:00
* Comitting 0001271: [PATCH] Refactor permissions to fully allow stacking permissions modules. From Melanie. Thanks Melanie!
This commit is contained in:
@@ -205,7 +205,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
|
||||
|
||||
// This needs to be updated for SuperEstateOwnerUser.. a non existing user in the estatesettings.xml
|
||||
// So make sure you really trust your region owners. because they can add other estate manaagers to your other estates
|
||||
if (remote_client.AgentId == m_scene.RegionInfo.MasterAvatarAssignedUUID || m_scene.Permissions.BypassPermissions)
|
||||
if (remote_client.AgentId == m_scene.RegionInfo.MasterAvatarAssignedUUID || m_scene.ExternalChecks.ExternalChecksBypassPermissions())
|
||||
{
|
||||
m_scene.RegionInfo.EstateSettings.AddEstateManager(user);
|
||||
remote_client.sendEstateManagersList(invoice, m_scene.RegionInfo.EstateSettings.estateManagers, m_scene.RegionInfo.EstateSettings.estateID);
|
||||
@@ -219,7 +219,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
|
||||
case 512:
|
||||
// This needs to be updated for SuperEstateOwnerUser.. a non existing user in the estatesettings.xml
|
||||
// So make sure you really trust your region owners. because they can add other estate manaagers to your other estates
|
||||
if (remote_client.AgentId == m_scene.RegionInfo.MasterAvatarAssignedUUID || m_scene.Permissions.BypassPermissions)
|
||||
if (remote_client.AgentId == m_scene.RegionInfo.MasterAvatarAssignedUUID || m_scene.ExternalChecks.ExternalChecksBypassPermissions())
|
||||
{
|
||||
m_scene.RegionInfo.EstateSettings.RemoveEstateManager(user);
|
||||
remote_client.sendEstateManagersList(invoice, m_scene.RegionInfo.EstateSettings.estateManagers, m_scene.RegionInfo.EstateSettings.estateID);
|
||||
@@ -438,4 +438,4 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
|
||||
sendRegionHandshake(client);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,23 +63,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
|
||||
private bool m_bypassPermissions = false;
|
||||
private bool m_bypassPermissionsValue = true;
|
||||
private bool m_debugPermissions = false;
|
||||
public bool BypassPermissions
|
||||
{
|
||||
get { return m_bypassPermissions; }
|
||||
set { m_bypassPermissions = value; }
|
||||
}
|
||||
|
||||
public bool BypassPermissionsValue
|
||||
{
|
||||
get { return m_bypassPermissionsValue; }
|
||||
set { m_bypassPermissionsValue = value; }
|
||||
}
|
||||
|
||||
public bool DebugPermissions
|
||||
{
|
||||
get { return m_debugPermissions; }
|
||||
set { m_debugPermissions = value; }
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ICommandableModule Members
|
||||
@@ -157,7 +141,10 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
|
||||
m_scene.RegisterModuleInterface<IScenePermissions>(this);
|
||||
|
||||
//Register functions with Scene External Checks!
|
||||
m_scene.ExternalChecks.addBypassPermissions(BypassPermissions); //FULLY IMPLEMENTED
|
||||
m_scene.ExternalChecks.addSetBypassPermissions(SetBypassPermissions); //FULLY IMPLEMENTED
|
||||
m_scene.ExternalChecks.addCheckAbandonParcel(CanAbandonParcel); //FULLY IMPLEMENTED
|
||||
m_scene.ExternalChecks.addGenerateClientFlags(GenerateClientFlags); //NOT YET FULLY IMPLEMENTED
|
||||
m_scene.ExternalChecks.addCheckBeGodLike(CanBeGodLike); //FULLY IMPLEMENTED
|
||||
m_scene.ExternalChecks.addCheckDuplicateObject(CanDuplicateObject); //FULLY IMPLEMENTED
|
||||
m_scene.ExternalChecks.addCheckDeleteObject(CanDeleteObject); //MAYBE FULLY IMPLEMENTED
|
||||
@@ -260,6 +247,16 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
|
||||
}
|
||||
#endregion
|
||||
|
||||
public bool BypassPermissions()
|
||||
{
|
||||
return m_bypassPermissions;
|
||||
}
|
||||
|
||||
public void SetBypassPermissions(bool value)
|
||||
{
|
||||
m_bypassPermissions=value;
|
||||
}
|
||||
|
||||
#region Object Permissions
|
||||
|
||||
public uint GenerateClientFlags(LLUUID user, LLUUID objID)
|
||||
|
||||
Reference in New Issue
Block a user