aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2013-08-26 20:04:07 +0100
committerJustin Clark-Casey (justincc)2013-09-04 00:42:23 +0100
commit5f0d54c209249e0640bc27b3d74a92e7c9d82428 (patch)
treed77965101dae37525d355d42c8bfa4c02cea6a5b /OpenSim/Region
parentIn pCampbot PhysicsBehaviour.Close(), only cancel jumping if bot is connected (diff)
downloadopensim-SC_OLD-5f0d54c209249e0640bc27b3d74a92e7c9d82428.zip
opensim-SC_OLD-5f0d54c209249e0640bc27b3d74a92e7c9d82428.tar.gz
opensim-SC_OLD-5f0d54c209249e0640bc27b3d74a92e7c9d82428.tar.bz2
opensim-SC_OLD-5f0d54c209249e0640bc27b3d74a92e7c9d82428.tar.xz
For a Hypergrid user, delay estate access checks until NewUserConnection() so that they work.
This is necessary because the hypergrid groups checks (as referenced by estates) require an agent circuit to be present to construct the hypergrid ID. However, this is not around until Scene.NewUserConnection(), as called by CreateAgent() in EntityTransferModule. Therefore, if we're dealing with a hypergrid user, delay the check until NewUserConnection()/CreateAgent() The entity transfer impact should be minimal since CreateAgent() is the next significant call after NewUserConnection() However, to preserve the accuracy of query access we will only relax the check for HG users.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs8
1 files changed, 6 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 2a21a4c..8754024 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -5788,9 +5788,13 @@ namespace OpenSim.Region.Framework.Scenes
5788 5788
5789 try 5789 try
5790 { 5790 {
5791 if (!AuthorizeUser(aCircuit, false, out reason)) 5791 // If this is a hypergrid user, then we can't perform a successful groups access check here since this
5792 // currently relies on a circuit being present in the AuthenticateHandler to construct a Hypergrid ID.
5793 // This is only present in NewUserConnection() which entity transfer calls very soon after QueryAccess().
5794 // Therefore, we'll defer to the check in NewUserConnection() instead.
5795 if (!AuthorizeUser(aCircuit, !UserManagementModule.IsLocalGridUser(agentID), out reason))
5792 { 5796 {
5793 // m_log.DebugFormat("[SCENE]: Denying access for {0}", agentID); 5797 //m_log.DebugFormat("[SCENE]: Denying access for {0}", agentID);
5794 return false; 5798 return false;
5795 } 5799 }
5796 } 5800 }