Also check user authorization if looking to upgrade from a child to a root agent.

Relevant if a child agent has been allowed into the region which should not be upgraded to a root agent.
varregion
Justin Clark-Casey (justincc) 2013-08-27 00:35:33 +01:00
parent 5f0d54c209
commit c7ded0618c
1 changed files with 13 additions and 0 deletions

View File

@ -3861,6 +3861,19 @@ namespace OpenSim.Region.Framework.Scenes
// uses down the line. // uses down the line.
sp.TeleportFlags = (TPFlags)teleportFlags; sp.TeleportFlags = (TPFlags)teleportFlags;
// We must carry out a further authorization check if there's an
// attempt to make a child agent into a root agent, since SeeIntoRegion may have allowed a child
// agent to login to a region where a full avatar would not be allowed.
//
// We determine whether this is a CreateAgent for a future non-child agent by inspecting
// TeleportFlags, which will be default for a child connection. This relies on input from the source
// region.
if (sp.TeleportFlags != TPFlags.Default)
{
if (!AuthorizeUser(acd, false, out reason))
return false;
}
if (sp.IsChildAgent) if (sp.IsChildAgent)
{ {
m_log.DebugFormat( m_log.DebugFormat(