Restore group membership check for HG users in QueryAccess.
parent
dc74a50225
commit
04619a9b13
|
@ -623,10 +623,13 @@ namespace OpenSim.Groups
|
|||
if (agent != null)
|
||||
break;
|
||||
}
|
||||
if (agent == null) // oops
|
||||
return AgentID.ToString();
|
||||
if (agent != null)
|
||||
return Util.ProduceUserUniversalIdentifier(agent);
|
||||
|
||||
// we don't know anything about this foreign user
|
||||
// try asking the user management module, which may know more
|
||||
return m_UserManagement.GetUserUUI(AgentID);
|
||||
|
||||
return Util.ProduceUserUniversalIdentifier(agent);
|
||||
}
|
||||
|
||||
private string AgentUUIForOutside(string AgentIDStr)
|
||||
|
|
|
@ -481,14 +481,20 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
|
|||
|
||||
public string GetUserUUI(UUID userID)
|
||||
{
|
||||
UserAccount account = m_Scenes[0].UserAccountService.GetUserAccount(m_Scenes[0].RegionInfo.ScopeID, userID);
|
||||
if (account != null)
|
||||
return userID.ToString();
|
||||
|
||||
UserData ud;
|
||||
lock (m_UserCache)
|
||||
m_UserCache.TryGetValue(userID, out ud);
|
||||
|
||||
if (ud == null) // It's not in the cache
|
||||
{
|
||||
string[] names = new string[2];
|
||||
// This will pull the data from either UserAccounts or GridUser
|
||||
// and stick it into the cache
|
||||
TryGetUserNamesFromServices(userID, names);
|
||||
lock (m_UserCache)
|
||||
m_UserCache.TryGetValue(userID, out ud);
|
||||
}
|
||||
|
||||
if (ud != null)
|
||||
{
|
||||
string homeURL = ud.HomeURL;
|
||||
|
|
|
@ -5801,11 +5801,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
try
|
||||
{
|
||||
// If this is a hypergrid user, then we can't perform a successful groups access check here since this
|
||||
// currently relies on a circuit being present in the AuthenticateHandler to construct a Hypergrid ID.
|
||||
// This is only present in NewUserConnection() which entity transfer calls very soon after QueryAccess().
|
||||
// Therefore, we'll defer to the check in NewUserConnection() instead.
|
||||
if (!AuthorizeUser(aCircuit, !UserManagementModule.IsLocalGridUser(agentID), out reason))
|
||||
if (!AuthorizeUser(aCircuit, false, out reason))
|
||||
{
|
||||
//m_log.DebugFormat("[SCENE]: Denying access for {0}", agentID);
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue