aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs59
1 files changed, 45 insertions, 14 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 9a3b0c9..9594e6b 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3457,11 +3457,27 @@ namespace OpenSim.Region.Framework.Scenes
3457 agent.AgentID, agent.circuitcode, teleportFlags); 3457 agent.AgentID, agent.circuitcode, teleportFlags);
3458 3458
3459 reason = String.Empty; 3459 reason = String.Empty;
3460 if (!VerifyUserPresence(agent, out reason)) 3460 try
3461 {
3462 if (!VerifyUserPresence(agent, out reason))
3463 return false;
3464 }
3465 catch (Exception e)
3466 {
3467 m_log.DebugFormat("[CONNECTION BEGIN]: Exception verifying presence {0}", e.Message);
3461 return false; 3468 return false;
3469 }
3462 3470
3463 if (!AuthorizeUser(agent, out reason)) 3471 try
3472 {
3473 if (!AuthorizeUser(agent, out reason))
3474 return false;
3475 }
3476 catch (Exception e)
3477 {
3478 m_log.DebugFormat("[CONNECTION BEGIN]: Exception authorizing user {0}", e.Message);
3464 return false; 3479 return false;
3480 }
3465 3481
3466 m_log.InfoFormat( 3482 m_log.InfoFormat(
3467 "[CONNECTION BEGIN]: Region {0} authenticated and authorized incoming {1} agent {2} {3} {4} (circuit code {5})", 3483 "[CONNECTION BEGIN]: Region {0} authenticated and authorized incoming {1} agent {2} {3} {4} (circuit code {5})",
@@ -3665,14 +3681,19 @@ namespace OpenSim.Region.Framework.Scenes
3665 } 3681 }
3666 } 3682 }
3667 3683
3668 if (m_regInfo.EstateSettings.IsBanned(agent.AgentID)) 3684 if (m_regInfo.EstateSettings != null)
3669 { 3685 {
3670 m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user is on the banlist", 3686 if (m_regInfo.EstateSettings.IsBanned(agent.AgentID))
3671 agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName); 3687 {
3672 reason = String.Format("Denied access to region {0}: You have been banned from that region.", 3688 m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user is on the banlist",
3673 RegionInfo.RegionName); 3689 agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName);
3674 return false; 3690 reason = String.Format("Denied access to region {0}: You have been banned from that region.",
3691 RegionInfo.RegionName);
3692 return false;
3693 }
3675 } 3694 }
3695 else
3696 m_log.ErrorFormat("[CONNECTION BEGIN]: Estate Settings is null!");
3676 3697
3677 IGroupsModule groupsModule = 3698 IGroupsModule groupsModule =
3678 RequestModuleInterface<IGroupsModule>(); 3699 RequestModuleInterface<IGroupsModule>();
@@ -3684,21 +3705,31 @@ namespace OpenSim.Region.Framework.Scenes
3684 GroupMembershipData[] GroupMembership = 3705 GroupMembershipData[] GroupMembership =
3685 groupsModule.GetMembershipData(agent.AgentID); 3706 groupsModule.GetMembershipData(agent.AgentID);
3686 3707
3687 for (int i = 0; i < GroupMembership.Length; i++) 3708 if (GroupMembership != null)
3688 agentGroups.Add(GroupMembership[i].GroupID); 3709 {
3710 for (int i = 0; i < GroupMembership.Length; i++)
3711 agentGroups.Add(GroupMembership[i].GroupID);
3712 }
3713 else
3714 m_log.ErrorFormat("[CONNECTION BEGIN]: GroupMembership is null!");
3689 } 3715 }
3690 3716
3691 bool groupAccess = false; 3717 bool groupAccess = false;
3692 UUID[] estateGroups = m_regInfo.EstateSettings.EstateGroups; 3718 UUID[] estateGroups = m_regInfo.EstateSettings.EstateGroups;
3693 3719
3694 foreach (UUID group in estateGroups) 3720 if (estateGroups != null)
3695 { 3721 {
3696 if (agentGroups.Contains(group)) 3722 foreach (UUID group in estateGroups)
3697 { 3723 {
3698 groupAccess = true; 3724 if (agentGroups.Contains(group))
3699 break; 3725 {
3726 groupAccess = true;
3727 break;
3728 }
3700 } 3729 }
3701 } 3730 }
3731 else
3732 m_log.ErrorFormat("[CONNECTION BEGIN]: EstateGroups is null!");
3702 3733
3703 if (!m_regInfo.EstateSettings.PublicAccess && 3734 if (!m_regInfo.EstateSettings.PublicAccess &&
3704 !m_regInfo.EstateSettings.HasAccess(agent.AgentID) && 3735 !m_regInfo.EstateSettings.HasAccess(agent.AgentID) &&