From d6803e6448535aac738d7193760d9d28b7146bd5 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Mon, 13 Dec 2010 20:28:14 +0000
Subject: Change some lookups in he Land Management module to make group
 permissions work better. Add a generic group permissions hoot to the scene
 permissions system.

---
 OpenSim/Region/Framework/Scenes/Scene.Permissions.cs | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

(limited to 'OpenSim')

diff --git a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
index d67638a..ab0eed8 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
@@ -68,6 +68,7 @@ namespace OpenSim.Region.Framework.Scenes
     public delegate bool IsGodHandler(UUID user, Scene requestFromScene);
     public delegate bool IsAdministratorHandler(UUID user);
     public delegate bool EditParcelHandler(UUID user, ILandObject parcel, Scene scene);
+    public delegate bool EditParcelPropertiesHandler(UUID user, ILandObject parcel, GroupPowers p, Scene scene);
     public delegate bool SellParcelHandler(UUID user, ILandObject parcel, Scene scene);
     public delegate bool AbandonParcelHandler(UUID user, ILandObject parcel, Scene scene);
     public delegate bool ReclaimParcelHandler(UUID user, ILandObject parcel, Scene scene);
@@ -131,6 +132,7 @@ namespace OpenSim.Region.Framework.Scenes
         public event IsGodHandler OnIsGod;
         public event IsAdministratorHandler OnIsAdministrator;
         public event EditParcelHandler OnEditParcel;
+        public event EditParcelPropertiesHandler OnEditParcelProperties;
         public event SellParcelHandler OnSellParcel;
         public event AbandonParcelHandler OnAbandonParcel;
         public event ReclaimParcelHandler OnReclaimParcel;
@@ -734,6 +736,21 @@ namespace OpenSim.Region.Framework.Scenes
             }
             return true;
         }
+
+        public bool CanEditParcelProperties(UUID user, ILandObject parcel, GroupPowers p)
+        {
+            EditParcelPropertiesHandler handler = OnEditParcelProperties;
+            if (handler != null)
+            {
+                Delegate[] list = handler.GetInvocationList();
+                foreach (EditParcelPropertiesHandler h in list)
+                {
+                    if (h(user, parcel, p, m_scene) == false)
+                        return false;
+                }
+            }
+            return true;
+        }
         #endregion
 
         #region SELL PARCEL
@@ -1043,4 +1060,4 @@ namespace OpenSim.Region.Framework.Scenes
             return true;
         }
     }
-}
\ No newline at end of file
+}
-- 
cgit v1.1