diff options
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 24 | ||||
-rw-r--r-- | bin/config-include/osslEnable.ini | 3 |
3 files changed, 21 insertions, 8 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index bd0786b..9545c13 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -6120,7 +6120,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
6120 | string reason; | 6120 | string reason; |
6121 | 6121 | ||
6122 | // dont mess with gods | 6122 | // dont mess with gods |
6123 | if(IsViewerUIGod || m_scene.Permissions.IsGod(m_uuid)) | 6123 | if(IsGod) |
6124 | return true; | 6124 | return true; |
6125 | 6125 | ||
6126 | // respect region owner and managers | 6126 | // respect region owner and managers |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 066f6a4..e769c6d 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -310,7 +310,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
310 | foreach (string id in ids) | 310 | foreach (string id in ids) |
311 | { | 311 | { |
312 | string current = id.Trim(); | 312 | string current = id.Trim(); |
313 | if (current.ToUpper() == "PARCEL_GROUP_MEMBER" || current.ToUpper() == "PARCEL_OWNER" || current.ToUpper() == "ESTATE_MANAGER" || current.ToUpper() == "ESTATE_OWNER" || current.ToUpper() == "GOD" || current.ToUpper() == "GRID_GOD") | 313 | if (current.ToUpper() == "PARCEL_GROUP_MEMBER" || current.ToUpper() == "PARCEL_OWNER" || current.ToUpper() == "ESTATE_MANAGER" || current.ToUpper() == "ESTATE_OWNER" || current.ToUpper() == "ACTIVE_GOD" || current.ToUpper() == "GRID_GOD" || current.ToUpper() == "GOD") |
314 | { | 314 | { |
315 | if (!perms.AllowedOwnerClasses.Contains(current)) | 315 | if (!perms.AllowedOwnerClasses.Contains(current)) |
316 | perms.AllowedOwnerClasses.Add(current.ToUpper()); | 316 | perms.AllowedOwnerClasses.Add(current.ToUpper()); |
@@ -415,24 +415,36 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
415 | } | 415 | } |
416 | } | 416 | } |
417 | 417 | ||
418 | //Only gods may use the function | 418 | |
419 | //Only grid gods may use the function | ||
420 | if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("GRID_GOD")) | ||
421 | { | ||
422 | if (World.Permissions.IsGridGod(ownerID)) | ||
423 | { | ||
424 | return String.Empty; | ||
425 | } | ||
426 | } | ||
427 | |||
428 | //Any god may use the function | ||
419 | if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("GOD")) | 429 | if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("GOD")) |
420 | { | 430 | { |
421 | if (World.Permissions.IsGod(ownerID)) | 431 | if (World.Permissions.IsAdministrator(ownerID)) |
422 | { | 432 | { |
423 | return String.Empty; | 433 | return String.Empty; |
424 | } | 434 | } |
425 | } | 435 | } |
426 | 436 | ||
427 | //Only grid gods may use the function | 437 | //Only active gods may use the function |
428 | if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("GRID_GOD")) | 438 | if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("ACTIVE_GOD")) |
429 | { | 439 | { |
430 | if (World.Permissions.IsGridGod(ownerID)) | 440 | ScenePresence sp = World.GetScenePresence(ownerID); |
441 | if (sp != null && !sp.IsDeleted && sp.IsGod) | ||
431 | { | 442 | { |
432 | return String.Empty; | 443 | return String.Empty; |
433 | } | 444 | } |
434 | } | 445 | } |
435 | 446 | ||
447 | |||
436 | if (!m_FunctionPerms[function].AllowedCreators.Contains(m_item.CreatorID)) | 448 | if (!m_FunctionPerms[function].AllowedCreators.Contains(m_item.CreatorID)) |
437 | return( | 449 | return( |
438 | String.Format("{0} permission denied. Script creator is not in the list of users allowed to execute this function and prim owner also has no permission.", | 450 | String.Format("{0} permission denied. Script creator is not in the list of users allowed to execute this function and prim owner also has no permission.", |
diff --git a/bin/config-include/osslEnable.ini b/bin/config-include/osslEnable.ini index b96688b..45eddf7 100644 --- a/bin/config-include/osslEnable.ini +++ b/bin/config-include/osslEnable.ini | |||
@@ -38,7 +38,8 @@ | |||
38 | ; against the owner of the object containing the script. | 38 | ; against the owner of the object containing the script. |
39 | ; The comma separated entries in the list may be one of: | 39 | ; The comma separated entries in the list may be one of: |
40 | ; "GRID_GOD" -- enable for users with UserLevel >= 200 | 40 | ; "GRID_GOD" -- enable for users with UserLevel >= 200 |
41 | ; "GOD" -- enable for users with any type of god rights | 41 | ; "GOD" -- enable for users with rights to be god (local or grid) |
42 | ; "ACTIVE_GOD" -- enable for users that are present and with active god power | ||
42 | ; "ESTATE_MANAGER" -- enable for estate manager | 43 | ; "ESTATE_MANAGER" -- enable for estate manager |
43 | ; "ESTATE_OWNER" -- enable for estate owner | 44 | ; "ESTATE_OWNER" -- enable for estate owner |
44 | ; "PARCEL_OWNER" -- enable for parcel owner | 45 | ; "PARCEL_OWNER" -- enable for parcel owner |