aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorBlueWall2015-02-27 12:27:10 -0500
committerBlueWall2015-02-27 12:27:10 -0500
commitaeb8a4bf85816595c9c2ba82413e309e7aa69062 (patch)
tree5e57ea2c030b12916885d0b84da90b5440db37e8 /OpenSim
parentAdding dynamic ossl permission control (diff)
downloadopensim-SC-aeb8a4bf85816595c9c2ba82413e309e7aa69062.zip
opensim-SC-aeb8a4bf85816595c9c2ba82413e309e7aa69062.tar.gz
opensim-SC-aeb8a4bf85816595c9c2ba82413e309e7aa69062.tar.bz2
opensim-SC-aeb8a4bf85816595c9c2ba82413e309e7aa69062.tar.xz
Revert "Adding dynamic ossl permission control"
This reverts commit a3681f3052fb5e98e31e7051329a5b748a8bdd8d until further testing. Jenkins now fails ossl tests.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs61
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs44
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs4
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs10
4 files changed, 0 insertions, 119 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 018e837..21d47aa 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -170,9 +170,6 @@ namespace OpenSim.Region.Framework.Scenes
170 } 170 }
171 private bool m_scripts_enabled; 171 private bool m_scripts_enabled;
172 172
173 // Dynamic ossl function permissions
174 private Dictionary<string, List<UUID>> m_DynaPerms = new Dictionary<string, List<UUID>>();
175
176 public SynchronizeSceneHandler SynchronizeScene; 173 public SynchronizeSceneHandler SynchronizeScene;
177 174
178 /// <summary> 175 /// <summary>
@@ -5896,63 +5893,5 @@ namespace OpenSim.Region.Framework.Scenes
5896 5893
5897 m_eventManager.TriggerExtraSettingChanged(this, name, String.Empty); 5894 m_eventManager.TriggerExtraSettingChanged(this, name, String.Empty);
5898 } 5895 }
5899
5900 public bool AddOsslPerm (UUID key, string function)
5901 {
5902 StackTrace calls = new StackTrace ();
5903 string caller = calls.GetFrame (1).GetMethod ().Name;
5904 if (caller != "osGrantScriptPermissions")
5905 {
5906 m_log.ErrorFormat("[SCENE]: {0} cannot adjust script perms!",caller);
5907 return false;
5908 }
5909
5910 if (string.IsNullOrEmpty(function))
5911 return false;
5912
5913 if (!m_DynaPerms.ContainsKey(function))
5914 {
5915 List<UUID> keys = new List<UUID> ();
5916 keys.Add (key);
5917 m_DynaPerms[function] = keys;
5918 return true;
5919 }
5920
5921 if (!m_DynaPerms[function].Contains(key))
5922 m_DynaPerms[function].Add(key);
5923
5924 return true;
5925 }
5926
5927 public bool GetOsslPerms(UUID avatar, string function)
5928 {
5929 if (m_DynaPerms.ContainsKey(function))
5930 if(m_DynaPerms[function].Contains(avatar))
5931 return true;
5932
5933 return false;
5934 }
5935
5936 public bool RemoveOsslPerm(UUID key, string function)
5937 {
5938 StackTrace calls = new StackTrace ();
5939 string caller = calls.GetFrame (1).GetMethod ().Name;
5940 if (caller != "osRevokeScriptPermissions")
5941 {
5942 m_log.ErrorFormat("[SCENE]: {0} cannot adjust script perms!",caller);
5943 return false;
5944 }
5945
5946 if (m_DynaPerms.ContainsKey (function))
5947 {
5948 if (m_DynaPerms [function].Contains (key))
5949 {
5950 m_DynaPerms [function].Remove (key);
5951 if (m_DynaPerms [function].Count == 0)
5952 m_DynaPerms.Remove (function);
5953 }
5954 }
5955 return true;
5956 }
5957 } 5896 }
5958} 5897}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index f4bc45f..10ddf14 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -264,9 +264,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
264 // or a string explaining why this function can't be used. 264 // or a string explaining why this function can't be used.
265 private string CheckThreatLevelTest(ThreatLevel level, string function) 265 private string CheckThreatLevelTest(ThreatLevel level, string function)
266 { 266 {
267 if(GetDynaPerms(m_item.CreatorID, m_item.OwnerID, m_item.GroupID, function))
268 return string.Empty;
269
270 if (!m_FunctionPerms.ContainsKey(function)) 267 if (!m_FunctionPerms.ContainsKey(function))
271 { 268 {
272 FunctionPerms perms = new FunctionPerms(); 269 FunctionPerms perms = new FunctionPerms();
@@ -434,47 +431,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
434 System.Threading.Thread.Sleep(delay); 431 System.Threading.Thread.Sleep(delay);
435 } 432 }
436 433
437 private bool GetDynaPerms(UUID owner, UUID creator, UUID group, string function)
438 {
439 if (World.GetOsslPerms(owner, function))
440 return true;
441 if (World.GetOsslPerms(creator, function))
442 return true;
443 if (World.GetOsslPerms(creator, function))
444 return true;
445
446 return false;
447
448 }
449
450 public void osGrantScriptPermissions(LSL_Key avatar, LSL_List osfunctions)
451 {
452 CheckThreatLevel(ThreatLevel.Severe, "osGrantScriptPermissions");
453 m_host.AddScriptLPS(1);
454 UUID key;
455 UUID.TryParse(avatar.m_string, out key);
456
457 for (int item = 0; item <= osfunctions.Length - 1; item++)
458 {
459 string function = osfunctions.GetLSLStringItem(item);
460 World.AddOsslPerm(key, function);
461 }
462 }
463
464 public void osRevokeScriptPermissions (LSL_Key avatar, LSL_List osfunctions)
465 {
466 CheckThreatLevel(ThreatLevel.Severe, "osRevokeScriptPermissions");
467 m_host.AddScriptLPS(1);
468 UUID key;
469 UUID.TryParse(avatar.m_string, out key);
470
471 for (int item = 0; item <= osfunctions.Length - 1; item++)
472 {
473 string function = osfunctions.GetLSLStringItem(item);
474 World.RemoveOsslPerm(key, function);
475 }
476 }
477
478 public LSL_Integer osSetTerrainHeight(int x, int y, double val) 434 public LSL_Integer osSetTerrainHeight(int x, int y, double val)
479 { 435 {
480 CheckThreatLevel(ThreatLevel.High, "osSetTerrainHeight"); 436 CheckThreatLevel(ThreatLevel.High, "osSetTerrainHeight");
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 2cbaf5a..38d4574 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -116,10 +116,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
116 { 116 {
117 void CheckThreatLevel(ThreatLevel level, string function); 117 void CheckThreatLevel(ThreatLevel level, string function);
118 118
119 // Scripted Script Permissions
120 void osGrantScriptPermissions(LSL_Key avatar, LSL_List functions);
121 void osRevokeScriptPermissions(LSL_Key avatar, LSL_List functions);
122
123 //OpenSim functions 119 //OpenSim functions
124 string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer); 120 string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer);
125 string osSetDynamicTextureURLBlend(string dynamicID, string contentType, string url, string extraParams, 121 string osSetDynamicTextureURLBlend(string dynamicID, string contentType, string url, string extraParams,
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index a98f6ac..352a35d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -61,16 +61,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
61 Prim = new OSSLPrim(this); 61 Prim = new OSSLPrim(this);
62 } 62 }
63 63
64 public void osGrantScriptPermissions (LSL_Key avatar, LSL_List osfunctions)
65 {
66 m_OSSL_Functions.osGrantScriptPermissions(avatar, osfunctions);
67 }
68
69 public void osRevokeScriptPermissions (LSL_Key avatar, LSL_List osfunctions)
70 {
71 m_OSSL_Functions.osRevokeScriptPermissions(avatar, osfunctions);
72 }
73
74 public void osSetRegionWaterHeight(double height) 64 public void osSetRegionWaterHeight(double height)
75 { 65 {
76 m_OSSL_Functions.osSetRegionWaterHeight(height); 66 m_OSSL_Functions.osSetRegionWaterHeight(height);