From eb11505d19be8c2b22776d927ac5b836bd5493c3 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Mon, 3 Apr 2017 16:10:05 +0100 Subject: add bool CanObjectEnterWithScripts(SceneObjectGroup sog, ILandObject land) permissions check --- .../PrimLimitsModule/PrimLimitsModule.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'OpenSim/Region/OptionalModules') diff --git a/OpenSim/Region/OptionalModules/PrimLimitsModule/PrimLimitsModule.cs b/OpenSim/Region/OptionalModules/PrimLimitsModule/PrimLimitsModule.cs index af32d05..61b6d68 100644 --- a/OpenSim/Region/OptionalModules/PrimLimitsModule/PrimLimitsModule.cs +++ b/OpenSim/Region/OptionalModules/PrimLimitsModule/PrimLimitsModule.cs @@ -83,6 +83,7 @@ namespace OpenSim.Region.OptionalModules m_scene = scene; scene.Permissions.OnRezObject += CanRezObject; scene.Permissions.OnObjectEntry += CanObjectEnter; + scene.Permissions.OnObjectEnterWithScripts += CanObjectEnterWithScripts; scene.Permissions.OnDuplicateObject += CanDuplicateObject; m_log.DebugFormat("[PRIM LIMITS]: Region {0} added", scene.RegionInfo.RegionName); @@ -95,6 +96,7 @@ namespace OpenSim.Region.OptionalModules m_scene.Permissions.OnRezObject -= CanRezObject; m_scene.Permissions.OnObjectEntry -= CanObjectEnter; + scene.Permissions.OnObjectEnterWithScripts -= CanObjectEnterWithScripts; m_scene.Permissions.OnDuplicateObject -= CanDuplicateObject; } @@ -173,6 +175,26 @@ namespace OpenSim.Region.OptionalModules return true; } + private bool CanObjectEnterWithScripts(SceneObjectGroup sog, ILandObject newParcel) + { + if (sog == null) + return false; + + if (newParcel == null) + return true; + + int objectCount = sog.PrimCount; + + // TODO: Add Special Case here for temporary prims + + string response = DoCommonChecks(objectCount, sog.OwnerID, newParcel); + + if (response != null) + return false; + + return true; + } + private string DoCommonChecks(int objectCount, UUID ownerID, ILandObject lo) { string response = null; -- cgit v1.1