aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDiva Canto2013-09-05 07:44:27 -0700
committerDiva Canto2013-09-05 07:48:10 -0700
commite2b7d941b601bfeb5923a66f6dd0aaf17b76db91 (patch)
treefbdfe304c4cc5e2ce61511c9a151417068defc4d
parentminor: add doc about DefaultHGRegion and some of the other GridService region... (diff)
downloadopensim-SC_OLD-e2b7d941b601bfeb5923a66f6dd0aaf17b76db91.zip
opensim-SC_OLD-e2b7d941b601bfeb5923a66f6dd0aaf17b76db91.tar.gz
opensim-SC_OLD-e2b7d941b601bfeb5923a66f6dd0aaf17b76db91.tar.bz2
opensim-SC_OLD-e2b7d941b601bfeb5923a66f6dd0aaf17b76db91.tar.xz
Restore group membership check for HG users in QueryAccess.
-rw-r--r--OpenSim/Addons/Groups/Hypergrid/GroupsServiceHGConnectorModule.cs9
-rw-r--r--OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs14
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs6
3 files changed, 17 insertions, 12 deletions
diff --git a/OpenSim/Addons/Groups/Hypergrid/GroupsServiceHGConnectorModule.cs b/OpenSim/Addons/Groups/Hypergrid/GroupsServiceHGConnectorModule.cs
index 4642b2a..7d48516 100644
--- a/OpenSim/Addons/Groups/Hypergrid/GroupsServiceHGConnectorModule.cs
+++ b/OpenSim/Addons/Groups/Hypergrid/GroupsServiceHGConnectorModule.cs
@@ -623,10 +623,13 @@ namespace OpenSim.Groups
623 if (agent != null) 623 if (agent != null)
624 break; 624 break;
625 } 625 }
626 if (agent == null) // oops 626 if (agent != null)
627 return AgentID.ToString(); 627 return Util.ProduceUserUniversalIdentifier(agent);
628
629 // we don't know anything about this foreign user
630 // try asking the user management module, which may know more
631 return m_UserManagement.GetUserUUI(AgentID);
628 632
629 return Util.ProduceUserUniversalIdentifier(agent);
630 } 633 }
631 634
632 private string AgentUUIForOutside(string AgentIDStr) 635 private string AgentUUIForOutside(string AgentIDStr)
diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
index 7adb203..8c983e6 100644
--- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
@@ -481,14 +481,20 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
481 481
482 public string GetUserUUI(UUID userID) 482 public string GetUserUUI(UUID userID)
483 { 483 {
484 UserAccount account = m_Scenes[0].UserAccountService.GetUserAccount(m_Scenes[0].RegionInfo.ScopeID, userID);
485 if (account != null)
486 return userID.ToString();
487
488 UserData ud; 484 UserData ud;
489 lock (m_UserCache) 485 lock (m_UserCache)
490 m_UserCache.TryGetValue(userID, out ud); 486 m_UserCache.TryGetValue(userID, out ud);
491 487
488 if (ud == null) // It's not in the cache
489 {
490 string[] names = new string[2];
491 // This will pull the data from either UserAccounts or GridUser
492 // and stick it into the cache
493 TryGetUserNamesFromServices(userID, names);
494 lock (m_UserCache)
495 m_UserCache.TryGetValue(userID, out ud);
496 }
497
492 if (ud != null) 498 if (ud != null)
493 { 499 {
494 string homeURL = ud.HomeURL; 500 string homeURL = ud.HomeURL;
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 3eaa8fd..e00206f 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -5801,11 +5801,7 @@ namespace OpenSim.Region.Framework.Scenes
5801 5801
5802 try 5802 try
5803 { 5803 {
5804 // If this is a hypergrid user, then we can't perform a successful groups access check here since this 5804 if (!AuthorizeUser(aCircuit, false, out reason))
5805 // currently relies on a circuit being present in the AuthenticateHandler to construct a Hypergrid ID.
5806 // This is only present in NewUserConnection() which entity transfer calls very soon after QueryAccess().
5807 // Therefore, we'll defer to the check in NewUserConnection() instead.
5808 if (!AuthorizeUser(aCircuit, !UserManagementModule.IsLocalGridUser(agentID), out reason))
5809 { 5805 {
5810 //m_log.DebugFormat("[SCENE]: Denying access for {0}", agentID); 5806 //m_log.DebugFormat("[SCENE]: Denying access for {0}", agentID);
5811 return false; 5807 return false;