diff options
4 files changed, 28 insertions, 8 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs index 08f3dc7..c270428 100644 --- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs +++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | |||
@@ -3115,7 +3115,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
3115 | UserAccount account = userAccountService.GetUserAccount(scopeID, firstName, lastName); | 3115 | UserAccount account = userAccountService.GetUserAccount(scopeID, firstName, lastName); |
3116 | if (null == account) | 3116 | if (null == account) |
3117 | { | 3117 | { |
3118 | account = new UserAccount(scopeID, firstName, lastName, email); | 3118 | account = new UserAccount(scopeID, UUID.Random(), firstName, lastName, email); |
3119 | if (account.ServiceURLs == null || (account.ServiceURLs != null && account.ServiceURLs.Count == 0)) | 3119 | if (account.ServiceURLs == null || (account.ServiceURLs != null && account.ServiceURLs.Count == 0)) |
3120 | { | 3120 | { |
3121 | account.ServiceURLs = new Dictionary<string, object>(); | 3121 | account.ServiceURLs = new Dictionary<string, object>(); |
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 866ba9a..a6b91a3 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs | |||
@@ -462,9 +462,18 @@ namespace OpenSim | |||
462 | string password = MainConsole.Instance.PasswdPrompt("Password"); | 462 | string password = MainConsole.Instance.PasswdPrompt("Password"); |
463 | string email = MainConsole.Instance.CmdPrompt("Email", ""); | 463 | string email = MainConsole.Instance.CmdPrompt("Email", ""); |
464 | 464 | ||
465 | string rawPrincipalId = MainConsole.Instance.CmdPrompt("ID", UUID.Random().ToString()); | ||
466 | |||
467 | UUID principalId = UUID.Zero; | ||
468 | if (!UUID.TryParse(rawPrincipalId, out principalId)) | ||
469 | { | ||
470 | m_log.ErrorFormat("[OPENSIM]: ID {0} is not a valid UUID", rawPrincipalId); | ||
471 | return; | ||
472 | } | ||
473 | |||
465 | account | 474 | account |
466 | = ((UserAccountService)scene.UserAccountService).CreateUser( | 475 | = ((UserAccountService)scene.UserAccountService).CreateUser( |
467 | regionInfo.ScopeID, first, last, password, email); | 476 | regionInfo.ScopeID, principalId, first, last, password, email); |
468 | } | 477 | } |
469 | // } | 478 | // } |
470 | } | 479 | } |
diff --git a/OpenSim/Services/Interfaces/IUserAccountService.cs b/OpenSim/Services/Interfaces/IUserAccountService.cs index 9c992e0..20414f6 100644 --- a/OpenSim/Services/Interfaces/IUserAccountService.cs +++ b/OpenSim/Services/Interfaces/IUserAccountService.cs | |||
@@ -44,9 +44,9 @@ namespace OpenSim.Services.Interfaces | |||
44 | PrincipalID = principalID; | 44 | PrincipalID = principalID; |
45 | } | 45 | } |
46 | 46 | ||
47 | public UserAccount(UUID scopeID, string firstName, string lastName, string email) | 47 | public UserAccount(UUID scopeID, UUID principalID, string firstName, string lastName, string email) |
48 | { | 48 | { |
49 | PrincipalID = UUID.Random(); | 49 | PrincipalID = principalID; |
50 | ScopeID = scopeID; | 50 | ScopeID = scopeID; |
51 | FirstName = firstName; | 51 | FirstName = firstName; |
52 | LastName = lastName; | 52 | LastName = lastName; |
diff --git a/OpenSim/Services/UserAccountService/UserAccountService.cs b/OpenSim/Services/UserAccountService/UserAccountService.cs index e071b94..923be7e 100644 --- a/OpenSim/Services/UserAccountService/UserAccountService.cs +++ b/OpenSim/Services/UserAccountService/UserAccountService.cs | |||
@@ -93,7 +93,7 @@ namespace OpenSim.Services.UserAccountService | |||
93 | { | 93 | { |
94 | MainConsole.Instance.Commands.AddCommand("UserService", false, | 94 | MainConsole.Instance.Commands.AddCommand("UserService", false, |
95 | "create user", | 95 | "create user", |
96 | "create user [<first> [<last> [<pass> [<email>]]]]", | 96 | "create user [<first> [<last> [<pass> [<email> [<user id>]]]]]", |
97 | "Create a new user", HandleCreateUser); | 97 | "Create a new user", HandleCreateUser); |
98 | 98 | ||
99 | MainConsole.Instance.Commands.AddCommand("UserService", false, | 99 | MainConsole.Instance.Commands.AddCommand("UserService", false, |
@@ -321,6 +321,7 @@ namespace OpenSim.Services.UserAccountService | |||
321 | string lastName; | 321 | string lastName; |
322 | string password; | 322 | string password; |
323 | string email; | 323 | string email; |
324 | string rawPrincipalId; | ||
324 | 325 | ||
325 | List<char> excluded = new List<char>(new char[]{' '}); | 326 | List<char> excluded = new List<char>(new char[]{' '}); |
326 | 327 | ||
@@ -340,7 +341,16 @@ namespace OpenSim.Services.UserAccountService | |||
340 | email = MainConsole.Instance.CmdPrompt("Email", ""); | 341 | email = MainConsole.Instance.CmdPrompt("Email", ""); |
341 | else email = cmdparams[5]; | 342 | else email = cmdparams[5]; |
342 | 343 | ||
343 | CreateUser(UUID.Zero, firstName, lastName, password, email); | 344 | if (cmdparams.Length < 7) |
345 | rawPrincipalId = MainConsole.Instance.CmdPrompt("User ID", UUID.Random().ToString()); | ||
346 | else | ||
347 | rawPrincipalId = cmdparams[6]; | ||
348 | |||
349 | UUID principalId = UUID.Zero; | ||
350 | if (!UUID.TryParse(rawPrincipalId, out principalId)) | ||
351 | throw new Exception(string.Format("ID {0} is not a valid UUID", rawPrincipalId)); | ||
352 | |||
353 | CreateUser(UUID.Zero, principalId, firstName, lastName, password, email); | ||
344 | } | 354 | } |
345 | 355 | ||
346 | protected void HandleShowAccount(string module, string[] cmdparams) | 356 | protected void HandleShowAccount(string module, string[] cmdparams) |
@@ -453,16 +463,17 @@ namespace OpenSim.Services.UserAccountService | |||
453 | /// Create a user | 463 | /// Create a user |
454 | /// </summary> | 464 | /// </summary> |
455 | /// <param name="scopeID">Allows hosting of multiple grids in a single database. Normally left as UUID.Zero</param> | 465 | /// <param name="scopeID">Allows hosting of multiple grids in a single database. Normally left as UUID.Zero</param> |
466 | /// <param name="principalID">ID of the user</param> | ||
456 | /// <param name="firstName"></param> | 467 | /// <param name="firstName"></param> |
457 | /// <param name="lastName"></param> | 468 | /// <param name="lastName"></param> |
458 | /// <param name="password"></param> | 469 | /// <param name="password"></param> |
459 | /// <param name="email"></param> | 470 | /// <param name="email"></param> |
460 | public UserAccount CreateUser(UUID scopeID, string firstName, string lastName, string password, string email) | 471 | public UserAccount CreateUser(UUID scopeID, UUID principalID, string firstName, string lastName, string password, string email) |
461 | { | 472 | { |
462 | UserAccount account = GetUserAccount(UUID.Zero, firstName, lastName); | 473 | UserAccount account = GetUserAccount(UUID.Zero, firstName, lastName); |
463 | if (null == account) | 474 | if (null == account) |
464 | { | 475 | { |
465 | account = new UserAccount(UUID.Zero, firstName, lastName, email); | 476 | account = new UserAccount(UUID.Zero, principalID, firstName, lastName, email); |
466 | if (account.ServiceURLs == null || (account.ServiceURLs != null && account.ServiceURLs.Count == 0)) | 477 | if (account.ServiceURLs == null || (account.ServiceURLs != null && account.ServiceURLs.Count == 0)) |
467 | { | 478 | { |
468 | account.ServiceURLs = new Dictionary<string, object>(); | 479 | account.ServiceURLs = new Dictionary<string, object>(); |