Restore group membership check for HG users in QueryAccess.
parent
aa4479c4bc
commit
e2b7d941b6
|
@ -623,10 +623,13 @@ namespace OpenSim.Groups
|
||||||
if (agent != null)
|
if (agent != null)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (agent == null) // oops
|
if (agent != null)
|
||||||
return AgentID.ToString();
|
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)
|
private string AgentUUIForOutside(string AgentIDStr)
|
||||||
|
|
|
@ -481,14 +481,20 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
|
||||||
|
|
||||||
public string GetUserUUI(UUID userID)
|
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;
|
UserData ud;
|
||||||
lock (m_UserCache)
|
lock (m_UserCache)
|
||||||
m_UserCache.TryGetValue(userID, out ud);
|
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)
|
if (ud != null)
|
||||||
{
|
{
|
||||||
string homeURL = ud.HomeURL;
|
string homeURL = ud.HomeURL;
|
||||||
|
|
|
@ -5801,11 +5801,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// If this is a hypergrid user, then we can't perform a successful groups access check here since this
|
if (!AuthorizeUser(aCircuit, false, out reason))
|
||||||
// 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))
|
|
||||||
{
|
{
|
||||||
//m_log.DebugFormat("[SCENE]: Denying access for {0}", agentID);
|
//m_log.DebugFormat("[SCENE]: Denying access for {0}", agentID);
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue