Bug fix -- Test User on first run standalone might not be created properly: let all instances of UserAccountService have all its service references properly initialized, and register console commands on only one.
parent
2ecfa29eb6
commit
b72753dc81
|
@ -62,58 +62,56 @@ namespace OpenSim.Services.UserAccountService
|
||||||
if (userConfig == null)
|
if (userConfig == null)
|
||||||
throw new Exception("No UserAccountService configuration");
|
throw new Exception("No UserAccountService configuration");
|
||||||
|
|
||||||
|
m_RootInstance = this;
|
||||||
|
string gridServiceDll = userConfig.GetString("GridService", string.Empty);
|
||||||
|
if (gridServiceDll != string.Empty)
|
||||||
|
m_GridService = LoadPlugin<IGridService>(gridServiceDll, new Object[] { config });
|
||||||
|
|
||||||
|
string authServiceDll = userConfig.GetString("AuthenticationService", string.Empty);
|
||||||
|
if (authServiceDll != string.Empty)
|
||||||
|
m_AuthenticationService = LoadPlugin<IAuthenticationService>(authServiceDll, new Object[] { config });
|
||||||
|
|
||||||
|
string presenceServiceDll = userConfig.GetString("GridUserService", string.Empty);
|
||||||
|
if (presenceServiceDll != string.Empty)
|
||||||
|
m_GridUserService = LoadPlugin<IGridUserService>(presenceServiceDll, new Object[] { config });
|
||||||
|
|
||||||
|
string invServiceDll = userConfig.GetString("InventoryService", string.Empty);
|
||||||
|
if (invServiceDll != string.Empty)
|
||||||
|
m_InventoryService = LoadPlugin<IInventoryService>(invServiceDll, new Object[] { config });
|
||||||
|
|
||||||
|
string avatarServiceDll = userConfig.GetString("AvatarService", string.Empty);
|
||||||
|
if (avatarServiceDll != string.Empty)
|
||||||
|
m_AvatarService = LoadPlugin<IAvatarService>(avatarServiceDll, new Object[] { config });
|
||||||
|
|
||||||
|
m_CreateDefaultAvatarEntries = userConfig.GetBoolean("CreateDefaultAvatarEntries", false);
|
||||||
|
|
||||||
// In case there are several instances of this class in the same process,
|
// In case there are several instances of this class in the same process,
|
||||||
// the console commands are only registered for the root instance
|
// the console commands are only registered for the root instance
|
||||||
if (m_RootInstance == null)
|
if (m_RootInstance == null && MainConsole.Instance != null)
|
||||||
{
|
{
|
||||||
m_RootInstance = this;
|
m_RootInstance = this;
|
||||||
string gridServiceDll = userConfig.GetString("GridService", string.Empty);
|
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
||||||
if (gridServiceDll != string.Empty)
|
"create user",
|
||||||
m_GridService = LoadPlugin<IGridService>(gridServiceDll, new Object[] { config });
|
"create user [<first> [<last> [<pass> [<email> [<user id>]]]]]",
|
||||||
|
"Create a new user", HandleCreateUser);
|
||||||
|
|
||||||
string authServiceDll = userConfig.GetString("AuthenticationService", string.Empty);
|
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
||||||
if (authServiceDll != string.Empty)
|
"reset user password",
|
||||||
m_AuthenticationService = LoadPlugin<IAuthenticationService>(authServiceDll, new Object[] { config });
|
"reset user password [<first> [<last> [<password>]]]",
|
||||||
|
"Reset a user password", HandleResetUserPassword);
|
||||||
|
|
||||||
string presenceServiceDll = userConfig.GetString("GridUserService", string.Empty);
|
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
||||||
if (presenceServiceDll != string.Empty)
|
"set user level",
|
||||||
m_GridUserService = LoadPlugin<IGridUserService>(presenceServiceDll, new Object[] { config });
|
"set user level [<first> [<last> [<level>]]]",
|
||||||
|
"Set user level. If >= 200 and 'allow_grid_gods = true' in OpenSim.ini, "
|
||||||
|
+ "this account will be treated as god-moded. "
|
||||||
|
+ "It will also affect the 'login level' command. ",
|
||||||
|
HandleSetUserLevel);
|
||||||
|
|
||||||
string invServiceDll = userConfig.GetString("InventoryService", string.Empty);
|
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
||||||
if (invServiceDll != string.Empty)
|
"show account",
|
||||||
m_InventoryService = LoadPlugin<IInventoryService>(invServiceDll, new Object[] { config });
|
"show account <first> <last>",
|
||||||
|
"Show account details for the given user", HandleShowAccount);
|
||||||
string avatarServiceDll = userConfig.GetString("AvatarService", string.Empty);
|
|
||||||
if (avatarServiceDll != string.Empty)
|
|
||||||
m_AvatarService = LoadPlugin<IAvatarService>(avatarServiceDll, new Object[] { config });
|
|
||||||
|
|
||||||
m_CreateDefaultAvatarEntries = userConfig.GetBoolean("CreateDefaultAvatarEntries", false);
|
|
||||||
|
|
||||||
if (MainConsole.Instance != null)
|
|
||||||
{
|
|
||||||
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
|
||||||
"create user",
|
|
||||||
"create user [<first> [<last> [<pass> [<email> [<user id>]]]]]",
|
|
||||||
"Create a new user", HandleCreateUser);
|
|
||||||
|
|
||||||
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
|
||||||
"reset user password",
|
|
||||||
"reset user password [<first> [<last> [<password>]]]",
|
|
||||||
"Reset a user password", HandleResetUserPassword);
|
|
||||||
|
|
||||||
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
|
||||||
"set user level",
|
|
||||||
"set user level [<first> [<last> [<level>]]]",
|
|
||||||
"Set user level. If >= 200 and 'allow_grid_gods = true' in OpenSim.ini, "
|
|
||||||
+ "this account will be treated as god-moded. "
|
|
||||||
+ "It will also affect the 'login level' command. ",
|
|
||||||
HandleSetUserLevel);
|
|
||||||
|
|
||||||
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
|
||||||
"show account",
|
|
||||||
"show account <first> <last>",
|
|
||||||
"Show account details for the given user", HandleShowAccount);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue