When a user logs-in, automatically create the Suitcase folder

This is only done if the Suitcase Inventory Service is used.
Previously the Suitcase was created at a later time, which meant that it wasn't shown in the viewer until the viewer was restarted.
0.8.0.3
Oren Hurvitz 2014-03-24 18:00:59 +02:00
parent 7496d0b0f7
commit df9845a283
2 changed files with 23 additions and 15 deletions

View File

@ -215,26 +215,18 @@ namespace OpenSim.Services.HypergridService
if (suitcase == null) if (suitcase == null)
{ {
m_log.ErrorFormat("[HG SUITCASE INVENTORY SERVICE]: Unable to create suitcase folder"); m_log.ErrorFormat("[HG SUITCASE INVENTORY SERVICE]: Unable to create suitcase folder");
return null;
} }
else
{
m_Database.StoreFolder(suitcase); m_Database.StoreFolder(suitcase);
// Create System folders
CreateSystemFolders(principalID, suitcase.folderID); CreateSystemFolders(principalID, suitcase.folderID);
}
SetAsNormalFolder(suitcase); SetAsNormalFolder(suitcase);
return ConvertToOpenSim(suitcase); return ConvertToOpenSim(suitcase);
} }
}
else
{
return ConvertToOpenSim(suitcase);
}
return null;
}
protected void CreateSystemFolders(UUID principalID, UUID rootID) protected void CreateSystemFolders(UUID principalID, UUID rootID)
{ {

View File

@ -58,6 +58,7 @@ namespace OpenSim.Services.LLLoginService
protected IGridUserService m_GridUserService; protected IGridUserService m_GridUserService;
protected IAuthenticationService m_AuthenticationService; protected IAuthenticationService m_AuthenticationService;
protected IInventoryService m_InventoryService; protected IInventoryService m_InventoryService;
protected IInventoryService m_HGInventoryService;
protected IGridService m_GridService; protected IGridService m_GridService;
protected IPresenceService m_PresenceService; protected IPresenceService m_PresenceService;
protected ISimulationService m_LocalSimulationService; protected ISimulationService m_LocalSimulationService;
@ -165,6 +166,14 @@ namespace OpenSim.Services.LLLoginService
if (agentService != string.Empty) if (agentService != string.Empty)
m_UserAgentService = ServerUtils.LoadPlugin<IUserAgentService>(agentService, args); m_UserAgentService = ServerUtils.LoadPlugin<IUserAgentService>(agentService, args);
// Get the Hypergrid inventory service (exists only if Hypergrid is enabled)
string hgInvService = Util.GetConfigVarFromSections<string>(config, "LocalServiceModule", new string[] { "HGInventoryService" }, String.Empty);
if (hgInvService != string.Empty)
{
Object[] args2 = new Object[] { config, "HGInventoryService" };
m_HGInventoryService = ServerUtils.LoadPlugin<IInventoryService>(hgInvService, args2);
}
// //
// deal with the services given as argument // deal with the services given as argument
// //
@ -350,6 +359,13 @@ namespace OpenSim.Services.LLLoginService
return LLFailedLoginResponse.InventoryProblem; return LLFailedLoginResponse.InventoryProblem;
} }
if (m_HGInventoryService != null)
{
// Give the Suitcase service a chance to create the suitcase folder.
// (If we're not using the Suitcase inventory service then this won't do anything.)
m_HGInventoryService.GetRootFolder(account.PrincipalID);
}
List<InventoryFolderBase> inventorySkel = m_InventoryService.GetInventorySkeleton(account.PrincipalID); List<InventoryFolderBase> inventorySkel = m_InventoryService.GetInventorySkeleton(account.PrincipalID);
if (m_RequireInventory && ((inventorySkel == null) || (inventorySkel != null && inventorySkel.Count == 0))) if (m_RequireInventory && ((inventorySkel == null) || (inventorySkel != null && inventorySkel.Count == 0)))
{ {