diff options
Diffstat (limited to 'OpenSim')
4 files changed, 21 insertions, 9 deletions
diff --git a/OpenSim/Region/Environment/PermissionManager.cs b/OpenSim/Region/Environment/PermissionManager.cs index 36f75d1..5958249 100644 --- a/OpenSim/Region/Environment/PermissionManager.cs +++ b/OpenSim/Region/Environment/PermissionManager.cs | |||
@@ -74,7 +74,7 @@ namespace OpenSim.Region.Environment | |||
74 | m_scene.EventManager.TriggerPermissionError(user, reason); | 74 | m_scene.EventManager.TriggerPermissionError(user, reason); |
75 | } | 75 | } |
76 | 76 | ||
77 | public virtual bool IsAdministrator(LLUUID user) | 77 | protected virtual bool IsAdministrator(LLUUID user) |
78 | { | 78 | { |
79 | if (m_bypassPermissions) | 79 | if (m_bypassPermissions) |
80 | { | 80 | { |
@@ -495,6 +495,11 @@ namespace OpenSim.Region.Environment | |||
495 | return IsAdministrator(user); | 495 | return IsAdministrator(user); |
496 | } | 496 | } |
497 | 497 | ||
498 | public virtual bool CanRunConsoleCommand(LLUUID user) | ||
499 | { | ||
500 | return IsAdministrator(user); | ||
501 | } | ||
502 | |||
498 | public virtual bool CanTerraform(LLUUID user, LLVector3 position) | 503 | public virtual bool CanTerraform(LLUUID user, LLVector3 position) |
499 | { | 504 | { |
500 | bool permission = false; | 505 | bool permission = false; |
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BaseClass.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BaseClass.cs index 088b985..7713490 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BaseClass.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BaseClass.cs | |||
@@ -1865,7 +1865,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1865 | m_LSL_Functions.osRegionNotice(msg); | 1865 | m_LSL_Functions.osRegionNotice(msg); |
1866 | } | 1866 | } |
1867 | 1867 | ||
1868 | public int osConsoleCommand(string Command) | 1868 | public bool osConsoleCommand(string Command) |
1869 | { | 1869 | { |
1870 | return m_LSL_Functions.osConsoleCommand(Command); | 1870 | return m_LSL_Functions.osConsoleCommand(Command); |
1871 | } | 1871 | } |
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index a7d4ecf..c07f6d7 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -3676,14 +3676,21 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
3676 | return LLUUID.Zero.ToString(); | 3676 | return LLUUID.Zero.ToString(); |
3677 | } | 3677 | } |
3678 | 3678 | ||
3679 | public int osConsoleCommand(string Command) | 3679 | public bool osConsoleCommand(string Command) |
3680 | { | 3680 | { |
3681 | if (World.PermissionsMngr.IsAdministrator(m_host.OwnerID)) { | 3681 | m_host.AddScriptLPS(1); |
3682 | OpenSim.Framework.Console.MainConsole.Instance.RunCommand(Command); | 3682 | Nini.Config.IConfigSource config = new Nini.Config.IniConfigSource(Application.iniFilePath); |
3683 | return 1; | 3683 | if (config.Configs["LL-Functions"] == null) |
3684 | } else { | 3684 | config.AddConfig("LL-Functions"); |
3685 | return 0; | 3685 | |
3686 | if (config.Configs["LL-Functions"].GetBoolean("AllowosConsoleCommand", false)) { | ||
3687 | if (World.PermissionsMngr.CanRunConsoleCommand(m_host.OwnerID)) { | ||
3688 | OpenSim.Framework.Console.MainConsole.Instance.RunCommand(Command); | ||
3689 | return true; | ||
3690 | } | ||
3691 | return false; | ||
3686 | } | 3692 | } |
3693 | return false; | ||
3687 | } | 3694 | } |
3688 | 3695 | ||
3689 | private void NotImplemented(string Command) | 3696 | private void NotImplemented(string Command) |
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs index 81478e0..0703523 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs | |||
@@ -641,6 +641,6 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
641 | int osTerrainSetHeight(int x, int y, double val); | 641 | int osTerrainSetHeight(int x, int y, double val); |
642 | int osRegionRestart(double seconds); | 642 | int osRegionRestart(double seconds); |
643 | void osRegionNotice(string msg); | 643 | void osRegionNotice(string msg); |
644 | int osConsoleCommand(string Command); | 644 | bool osConsoleCommand(string Command); |
645 | } | 645 | } |
646 | } | 646 | } |