From ba1ca67afef3640bd5fd0d1cee678d7bda79c97c Mon Sep 17 00:00:00 2001
From: Melanie Thielker
Date: Fri, 23 Dec 2016 19:48:03 +0000
Subject: Re-add GRID_GOD because in some cases an "employee-only" level is
 simply needed

---
 .../ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs      | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 6e66479..ba5a46d 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
                         foreach (string id in ids)
                         {
                             string current = id.Trim();
-                            if (current.ToUpper() == "PARCEL_GROUP_MEMBER" || current.ToUpper() == "PARCEL_OWNER" || current.ToUpper() == "ESTATE_MANAGER" || current.ToUpper() == "ESTATE_OWNER" || current.ToUpper() == "GOD")
+                            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")
                             {
                                 if (!perms.AllowedOwnerClasses.Contains(current))
                                     perms.AllowedOwnerClasses.Add(current.ToUpper());
@@ -418,14 +418,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
                     //Only gods may use the function
                     if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("GOD"))
                     {
-                        // this should be replaced by sp.GodLevel > 200 to be effective requested power
-                        // but that still needs fix
                         if (World.Permissions.IsGod(ownerID)) 
                         {
                             return String.Empty;
                         }
                     }
 
+                    //Only grid gods may use the function
+                    if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("GRID_GOD"))
+                    {
+                        if (World.Permissions.IsGridGod(ownerID)) 
+                        {
+                            return String.Empty;
+                        }
+                    }
+
                     if (!m_FunctionPerms[function].AllowedCreators.Contains(m_item.CreatorID))
                         return(
                             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.",
-- 
cgit v1.1