diff options
author | Diva Canto | 2013-09-05 07:44:27 -0700 |
---|---|---|
committer | Diva Canto | 2013-09-05 07:44:27 -0700 |
commit | 04619a9b139ac67c92b5b8be9607544be2621d7e (patch) | |
tree | f1e1d8edb2e1b0235603cdca1fa950c7259b53d6 /OpenSim/Region | |
parent | Stop "show client stats" from throwing an exception if somehow Scene.m_client... (diff) | |
download | opensim-SC-04619a9b139ac67c92b5b8be9607544be2621d7e.zip opensim-SC-04619a9b139ac67c92b5b8be9607544be2621d7e.tar.gz opensim-SC-04619a9b139ac67c92b5b8be9607544be2621d7e.tar.bz2 opensim-SC-04619a9b139ac67c92b5b8be9607544be2621d7e.tar.xz |
Restore group membership check for HG users in QueryAccess.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs | 14 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 6 |
2 files changed, 11 insertions, 9 deletions
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; |