diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index ae48c02..dd06be2 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -84,6 +84,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
84 | // TODO: need to figure out how allow client agents but deny | 84 | // TODO: need to figure out how allow client agents but deny |
85 | // root agents when ACL denies access to root agent | 85 | // root agents when ACL denies access to root agent |
86 | public bool m_strictAccessControl = true; | 86 | public bool m_strictAccessControl = true; |
87 | public bool m_seeIntoBannedRegion = false; | ||
87 | public int MaxUndoCount = 5; | 88 | public int MaxUndoCount = 5; |
88 | public bool LoginsDisabled = true; | 89 | public bool LoginsDisabled = true; |
89 | public bool LoadingPrims; | 90 | public bool LoadingPrims; |
@@ -683,6 +684,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
683 | } | 684 | } |
684 | 685 | ||
685 | m_strictAccessControl = startupConfig.GetBoolean("StrictAccessControl", m_strictAccessControl); | 686 | m_strictAccessControl = startupConfig.GetBoolean("StrictAccessControl", m_strictAccessControl); |
687 | m_seeIntoBannedRegion = startupConfig.GetBoolean("SeeIntoBannedRegion", m_seeIntoBannedRegion); | ||
686 | CombineRegions = startupConfig.GetBoolean("CombineContiguousRegions", false); | 688 | CombineRegions = startupConfig.GetBoolean("CombineContiguousRegions", false); |
687 | 689 | ||
688 | m_generateMaptiles = startupConfig.GetBoolean("GenerateMaptiles", true); | 690 | m_generateMaptiles = startupConfig.GetBoolean("GenerateMaptiles", true); |
@@ -3688,7 +3690,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3688 | 3690 | ||
3689 | if (m_regInfo.EstateSettings != null) | 3691 | if (m_regInfo.EstateSettings != null) |
3690 | { | 3692 | { |
3691 | if (m_regInfo.EstateSettings.IsBanned(agent.AgentID)) | 3693 | if ((!m_seeIntoBannedRegion) && m_regInfo.EstateSettings.IsBanned(agent.AgentID)) |
3692 | { | 3694 | { |
3693 | m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user is on the banlist", | 3695 | m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user is on the banlist", |
3694 | agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName); | 3696 | agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName); |
@@ -3878,6 +3880,19 @@ namespace OpenSim.Region.Framework.Scenes | |||
3878 | 3880 | ||
3879 | // We have to wait until the viewer contacts this region after receiving EAC. | 3881 | // We have to wait until the viewer contacts this region after receiving EAC. |
3880 | // That calls AddNewClient, which finally creates the ScenePresence | 3882 | // That calls AddNewClient, which finally creates the ScenePresence |
3883 | if (m_regInfo.EstateSettings.IsBanned(cAgentData.AgentID)) | ||
3884 | { | ||
3885 | m_log.DebugFormat("[SCENE]: Denying root agent entry to {0}: banned", cAgentData.AgentID); | ||
3886 | return false; | ||
3887 | } | ||
3888 | |||
3889 | ILandObject nearestParcel = GetNearestAllowedParcel(cAgentData.AgentID, Constants.RegionSize / 2, Constants.RegionSize / 2); | ||
3890 | if (nearestParcel == null) | ||
3891 | { | ||
3892 | m_log.DebugFormat("[SCENE]: Denying root agent entry to {0}: no allowed parcel", cAgentData.AgentID); | ||
3893 | return false; | ||
3894 | } | ||
3895 | |||
3881 | int num = m_sceneGraph.GetNumberOfScenePresences(); | 3896 | int num = m_sceneGraph.GetNumberOfScenePresences(); |
3882 | 3897 | ||
3883 | if (num >= RegionInfo.RegionSettings.AgentLimit) | 3898 | if (num >= RegionInfo.RegionSettings.AgentLimit) |
@@ -4878,7 +4893,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
4878 | Vector3 nearestRegionEdgePoint = GetNearestRegionEdgePosition(avatar); | 4893 | Vector3 nearestRegionEdgePoint = GetNearestRegionEdgePosition(avatar); |
4879 | //Debug.WriteLine("They are really in a place they don't belong, sending them to: " + nearestRegionEdgePoint.ToString()); | 4894 | //Debug.WriteLine("They are really in a place they don't belong, sending them to: " + nearestRegionEdgePoint.ToString()); |
4880 | return nearestRegionEdgePoint; | 4895 | return nearestRegionEdgePoint; |
4881 | return null; | ||
4882 | } | 4896 | } |
4883 | 4897 | ||
4884 | private Vector3 GetParcelCenterAtGround(ILandObject parcel) | 4898 | private Vector3 GetParcelCenterAtGround(ILandObject parcel) |