fix: do tell and log denied access to estate

LSLKeyTest
UbitUmarov 2015-12-13 12:42:15 +00:00
parent 5d6da6bb35
commit 36e53b0e03
1 changed files with 19 additions and 19 deletions

View File

@ -4457,22 +4457,22 @@ namespace OpenSim.Region.Framework.Scenes
return true;
// finally test groups
bool groupAccess = false;
// some say GOTO is ugly
if(m_groupsModule == null) // if no groups refuse
return false;
goto Label_GroupsDone;
UUID[] estateGroups = RegionInfo.EstateSettings.EstateGroups;
if(estateGroups == null)
{
m_log.ErrorFormat("[CONNECTION BEGIN]: Estate GroupMembership is null!");
return false;
goto Label_GroupsDone;
}
if(estateGroups.Length == 0)
{
return false;
}
goto Label_GroupsDone;
List<UUID> agentGroups = new List<UUID>();
GroupMembershipData[] GroupMembership = m_groupsModule.GetMembershipData(agent.AgentID);
@ -4480,16 +4480,15 @@ namespace OpenSim.Region.Framework.Scenes
if(GroupMembership == null)
{
m_log.ErrorFormat("[CONNECTION BEGIN]: GroupMembership is null!");
return false;
goto Label_GroupsDone;
}
if(GroupMembership.Length == 0)
return false;
goto Label_GroupsDone;
for(int i = 0;i < GroupMembership.Length;i++)
agentGroups.Add(GroupMembership[i].GroupID);
bool groupAccess = false;
foreach(UUID group in estateGroups)
{
if(agentGroups.Contains(group))
@ -4499,11 +4498,12 @@ namespace OpenSim.Region.Framework.Scenes
}
}
Label_GroupsDone:
if (!groupAccess)
{
m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user does not have access to the estate",
agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName);
reason = String.Format("Denied access to private region {0}: You are not on the access list for that region.",
reason = String.Format("Denied access to private region {0}: You are do not have access to that region.",
RegionInfo.RegionName);
return false;
}