*Added all the permission checks to the sceneexternalchecks and modified permission module to follow this.

*This makes permission checking much more modular; allows restrictive and granting module to be made without modifying the existing permission module
This commit is contained in:
mingchen
2008-05-08 19:37:57 +00:00
parent 4b924f2eb6
commit 6c71a04da8
11 changed files with 666 additions and 215 deletions

View File

@@ -181,7 +181,7 @@ namespace OpenSim.Region.ScriptEngine.Common
m_host.AddScriptLPS(1);
//Check to make sure that the script's owner is the estate manager/master
//World.Permissions.GenericEstatePermission(
if (World.Permissions.GenericEstatePermission(m_host.OwnerID))
if (World.ExternalChecks.ExternalChecksCanBeGodLike(m_host.OwnerID))
{
World.EventManager.TriggerRequestChangeWaterHeight((float)height);
}
@@ -2647,7 +2647,7 @@ namespace OpenSim.Region.ScriptEngine.Common
public void llModifyLand(int action, int brush)
{
m_host.AddScriptLPS(1);
if (World.Permissions.CanTerraform(m_host.OwnerID, new LLVector3(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y, 0)))
if (World.ExternalChecks.ExternalChecksCanTerraformLand(m_host.OwnerID, new LLVector3(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y, 0)))
{
NotImplemented("llModifyLand");
}
@@ -3900,7 +3900,7 @@ namespace OpenSim.Region.ScriptEngine.Common
{
if (m_host.ObjectOwner == parcel.landData.ownerID ||
(m_host.OwnerID == m_host.GroupID && m_host.GroupID == parcel.landData.groupID
&& parcel.landData.isGroupOwned) || World.Permissions.GenericEstatePermission(m_host.OwnerID))
&& parcel.landData.isGroupOwned) || World.ExternalChecks.ExternalChecksCanBeGodLike(m_host.OwnerID))
{
av.StandUp();
}

View File

@@ -258,7 +258,7 @@ namespace OpenSim.Region.ScriptEngine.Common
if (x > 255 || x < 0 || y > 255 || y < 0)
LSLError("osTerrainSetHeight: Coordinate out of bounds");
if (World.Permissions.CanTerraform(m_host.OwnerID, new LLVector3(x, y, 0)))
if (World.ExternalChecks.ExternalChecksCanTerraformLand(m_host.OwnerID, new LLVector3(x, y, 0)))
{
World.Heightmap[x, y] = val;
return 1;
@@ -281,7 +281,7 @@ namespace OpenSim.Region.ScriptEngine.Common
public int osRegionRestart(double seconds)
{
m_host.AddScriptLPS(1);
if (World.Permissions.CanRestartSim(m_host.OwnerID))
if (World.ExternalChecks.ExternalChecksCanRestartSim(m_host.OwnerID))
{
World.Restart((float)seconds);
return 1;
@@ -406,7 +406,7 @@ namespace OpenSim.Region.ScriptEngine.Common
if (config.Configs["LL-Functions"].GetBoolean("AllowosConsoleCommand", false))
{
if (World.Permissions.CanRunConsoleCommand(m_host.OwnerID))
if (World.ExternalChecks.ExternalChecksCanRunConsoleCommand(m_host.OwnerID))
{
MainConsole.Instance.RunCommand(command);
return true;