When creating a new user on the comand line, give the option of allowing a UUID to be specified to override the randomly generated one.
This can be useful in some migration cases where recreating user accounts with known IDs will preserve region scene object ownership.0.7.2-post-fixes
parent
a3316f1eac
commit
e6d1182dec
|
@ -3115,7 +3115,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
UserAccount account = userAccountService.GetUserAccount(scopeID, firstName, lastName);
|
UserAccount account = userAccountService.GetUserAccount(scopeID, firstName, lastName);
|
||||||
if (null == account)
|
if (null == account)
|
||||||
{
|
{
|
||||||
account = new UserAccount(scopeID, firstName, lastName, email);
|
account = new UserAccount(scopeID, UUID.Random(), firstName, lastName, email);
|
||||||
if (account.ServiceURLs == null || (account.ServiceURLs != null && account.ServiceURLs.Count == 0))
|
if (account.ServiceURLs == null || (account.ServiceURLs != null && account.ServiceURLs.Count == 0))
|
||||||
{
|
{
|
||||||
account.ServiceURLs = new Dictionary<string, object>();
|
account.ServiceURLs = new Dictionary<string, object>();
|
||||||
|
|
|
@ -462,9 +462,18 @@ namespace OpenSim
|
||||||
string password = MainConsole.Instance.PasswdPrompt("Password");
|
string password = MainConsole.Instance.PasswdPrompt("Password");
|
||||||
string email = MainConsole.Instance.CmdPrompt("Email", "");
|
string email = MainConsole.Instance.CmdPrompt("Email", "");
|
||||||
|
|
||||||
|
string rawPrincipalId = MainConsole.Instance.CmdPrompt("ID", UUID.Random().ToString());
|
||||||
|
|
||||||
|
UUID principalId = UUID.Zero;
|
||||||
|
if (!UUID.TryParse(rawPrincipalId, out principalId))
|
||||||
|
{
|
||||||
|
m_log.ErrorFormat("[OPENSIM]: ID {0} is not a valid UUID", rawPrincipalId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
account
|
account
|
||||||
= ((UserAccountService)scene.UserAccountService).CreateUser(
|
= ((UserAccountService)scene.UserAccountService).CreateUser(
|
||||||
regionInfo.ScopeID, first, last, password, email);
|
regionInfo.ScopeID, principalId, first, last, password, email);
|
||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,9 +44,9 @@ namespace OpenSim.Services.Interfaces
|
||||||
PrincipalID = principalID;
|
PrincipalID = principalID;
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserAccount(UUID scopeID, string firstName, string lastName, string email)
|
public UserAccount(UUID scopeID, UUID principalID, string firstName, string lastName, string email)
|
||||||
{
|
{
|
||||||
PrincipalID = UUID.Random();
|
PrincipalID = principalID;
|
||||||
ScopeID = scopeID;
|
ScopeID = scopeID;
|
||||||
FirstName = firstName;
|
FirstName = firstName;
|
||||||
LastName = lastName;
|
LastName = lastName;
|
||||||
|
|
|
@ -93,7 +93,7 @@ namespace OpenSim.Services.UserAccountService
|
||||||
{
|
{
|
||||||
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
||||||
"create user",
|
"create user",
|
||||||
"create user [<first> [<last> [<pass> [<email>]]]]",
|
"create user [<first> [<last> [<pass> [<email> [<user id>]]]]]",
|
||||||
"Create a new user", HandleCreateUser);
|
"Create a new user", HandleCreateUser);
|
||||||
|
|
||||||
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
||||||
|
@ -321,6 +321,7 @@ namespace OpenSim.Services.UserAccountService
|
||||||
string lastName;
|
string lastName;
|
||||||
string password;
|
string password;
|
||||||
string email;
|
string email;
|
||||||
|
string rawPrincipalId;
|
||||||
|
|
||||||
List<char> excluded = new List<char>(new char[]{' '});
|
List<char> excluded = new List<char>(new char[]{' '});
|
||||||
|
|
||||||
|
@ -340,7 +341,16 @@ namespace OpenSim.Services.UserAccountService
|
||||||
email = MainConsole.Instance.CmdPrompt("Email", "");
|
email = MainConsole.Instance.CmdPrompt("Email", "");
|
||||||
else email = cmdparams[5];
|
else email = cmdparams[5];
|
||||||
|
|
||||||
CreateUser(UUID.Zero, firstName, lastName, password, email);
|
if (cmdparams.Length < 7)
|
||||||
|
rawPrincipalId = MainConsole.Instance.CmdPrompt("User ID", UUID.Random().ToString());
|
||||||
|
else
|
||||||
|
rawPrincipalId = cmdparams[6];
|
||||||
|
|
||||||
|
UUID principalId = UUID.Zero;
|
||||||
|
if (!UUID.TryParse(rawPrincipalId, out principalId))
|
||||||
|
throw new Exception(string.Format("ID {0} is not a valid UUID", rawPrincipalId));
|
||||||
|
|
||||||
|
CreateUser(UUID.Zero, principalId, firstName, lastName, password, email);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void HandleShowAccount(string module, string[] cmdparams)
|
protected void HandleShowAccount(string module, string[] cmdparams)
|
||||||
|
@ -453,16 +463,17 @@ namespace OpenSim.Services.UserAccountService
|
||||||
/// Create a user
|
/// Create a user
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="scopeID">Allows hosting of multiple grids in a single database. Normally left as UUID.Zero</param>
|
/// <param name="scopeID">Allows hosting of multiple grids in a single database. Normally left as UUID.Zero</param>
|
||||||
|
/// <param name="principalID">ID of the user</param>
|
||||||
/// <param name="firstName"></param>
|
/// <param name="firstName"></param>
|
||||||
/// <param name="lastName"></param>
|
/// <param name="lastName"></param>
|
||||||
/// <param name="password"></param>
|
/// <param name="password"></param>
|
||||||
/// <param name="email"></param>
|
/// <param name="email"></param>
|
||||||
public UserAccount CreateUser(UUID scopeID, string firstName, string lastName, string password, string email)
|
public UserAccount CreateUser(UUID scopeID, UUID principalID, string firstName, string lastName, string password, string email)
|
||||||
{
|
{
|
||||||
UserAccount account = GetUserAccount(UUID.Zero, firstName, lastName);
|
UserAccount account = GetUserAccount(UUID.Zero, firstName, lastName);
|
||||||
if (null == account)
|
if (null == account)
|
||||||
{
|
{
|
||||||
account = new UserAccount(UUID.Zero, firstName, lastName, email);
|
account = new UserAccount(UUID.Zero, principalID, firstName, lastName, email);
|
||||||
if (account.ServiceURLs == null || (account.ServiceURLs != null && account.ServiceURLs.Count == 0))
|
if (account.ServiceURLs == null || (account.ServiceURLs != null && account.ServiceURLs.Count == 0))
|
||||||
{
|
{
|
||||||
account.ServiceURLs = new Dictionary<string, object>();
|
account.ServiceURLs = new Dictionary<string, object>();
|
||||||
|
|
Loading…
Reference in New Issue