diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs index f29a62f..3157ffe 100644 --- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs +++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | |||
@@ -448,17 +448,28 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
448 | string masterPassword = (string)requestData["region_master_password"]; | 448 | string masterPassword = (string)requestData["region_master_password"]; |
449 | 449 | ||
450 | UUID userID = UUID.Zero; | 450 | UUID userID = UUID.Zero; |
451 | UserProfileData userProfile = m_app.CommunicationsManager.UserService.GetUserProfile(masterFirst, masterLast); | 451 | if (requestData.ContainsKey("region_master_uuid")) |
452 | if (null == userProfile) | ||
453 | { | 452 | { |
454 | m_log.InfoFormat("master avatar does not exist, creating it"); | 453 | // ok, client wants us to use an explicit UUID |
455 | userID = m_app.CreateUser(masterFirst, masterLast, masterPassword, region.RegionLocX, region.RegionLocY); | 454 | // regardless of what the avatar name provided |
456 | if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}", | 455 | userID = new UUID((string)requestData["region_master_uuid"]); |
457 | masterFirst, masterLast)); | ||
458 | } | 456 | } |
459 | else | 457 | else |
460 | { | 458 | { |
461 | userID = userProfile.ID; | 459 | // no client supplied UUID: look it up... |
460 | UserProfileData userProfile = m_app.CommunicationsManager.UserService.GetUserProfile(masterFirst, masterLast); | ||
461 | if (null == userProfile) | ||
462 | { | ||
463 | m_log.InfoFormat("master avatar does not exist, creating it"); | ||
464 | // ...or create new user | ||
465 | userID = m_app.CreateUser(masterFirst, masterLast, masterPassword, region.RegionLocX, region.RegionLocY); | ||
466 | if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}", | ||
467 | masterFirst, masterLast)); | ||
468 | } | ||
469 | else | ||
470 | { | ||
471 | userID = userProfile.ID; | ||
472 | } | ||
462 | } | 473 | } |
463 | 474 | ||
464 | region.MasterAvatarFirstName = masterFirst; | 475 | region.MasterAvatarFirstName = masterFirst; |