aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Application/OpenSimBase.cs95
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs2
2 files changed, 52 insertions, 45 deletions
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 85870f0..4b87f84 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -414,52 +414,8 @@ namespace OpenSim
414 scene.SnmpService.BootInfo("Loading prins", scene); 414 scene.SnmpService.BootInfo("Loading prins", scene);
415 } 415 }
416 416
417 // FIXME: Put me into a separate method!
418 while (regionInfo.EstateSettings.EstateOwner == UUID.Zero && MainConsole.Instance != null) 417 while (regionInfo.EstateSettings.EstateOwner == UUID.Zero && MainConsole.Instance != null)
419 { 418 SetUpEstateOwner(scene);
420 MainConsole.Instance.OutputFormat("Estate {0} has no owner set.", regionInfo.EstateSettings.EstateName);
421 List<char> excluded = new List<char>(new char[1]{' '});
422 string first = MainConsole.Instance.CmdPrompt("Estate owner first name", "Test", excluded);
423 string last = MainConsole.Instance.CmdPrompt("Estate owner last name", "User", excluded);
424
425 UserAccount account = scene.UserAccountService.GetUserAccount(regionInfo.ScopeID, first, last);
426
427 if (account == null)
428 {
429 m_log.DebugFormat("A {0}", scene.UserAccountService.GetType());
430
431// if (scene.UserAccountService is LocalUserAccountServicesConnector)
432// {
433// IUserAccountService innerUas
434// = ((LocalUserAccountServicesConnector)scene.UserAccountService).UserAccountService;
435//
436// m_log.DebugFormat("B {0}", innerUas.GetType());
437//
438// if (innerUas is UserAccountService)
439// {
440
441 if (scene.UserAccountService is UserAccountService)
442 {
443 string password = MainConsole.Instance.PasswdPrompt("Password");
444 string email = MainConsole.Instance.CmdPrompt("Email", "");
445
446 // TODO: Where do we put m_regInfo.ScopeID?
447 account = ((UserAccountService)scene.UserAccountService).CreateUser(first, last, password, email);
448 }
449// }
450 }
451
452 if (account == null)
453 {
454 m_log.ErrorFormat(
455 "[OPENSIM]: Unable to store account. If this simulator is connected to a grid, you must create the estate owner account first.");
456 }
457 else
458 {
459 regionInfo.EstateSettings.EstateOwner = account.PrincipalID;
460 regionInfo.EstateSettings.Save();
461 }
462 }
463 419
464 // Prims have to be loaded after module configuration since some modules may be invoked during the load 420 // Prims have to be loaded after module configuration since some modules may be invoked during the load
465 scene.LoadPrimsFromStorage(regionInfo.originRegionID); 421 scene.LoadPrimsFromStorage(regionInfo.originRegionID);
@@ -544,6 +500,55 @@ namespace OpenSim
544 return clientServer; 500 return clientServer;
545 } 501 }
546 502
503 private void SetUpEstateOwner(Scene scene)
504 {
505 RegionInfo regionInfo = scene.RegionInfo;
506
507 MainConsole.Instance.OutputFormat("Estate {0} has no owner set.", regionInfo.EstateSettings.EstateName);
508 List<char> excluded = new List<char>(new char[1]{' '});
509 string first = MainConsole.Instance.CmdPrompt("Estate owner first name", "Test", excluded);
510 string last = MainConsole.Instance.CmdPrompt("Estate owner last name", "User", excluded);
511
512 UserAccount account = scene.UserAccountService.GetUserAccount(regionInfo.ScopeID, first, last);
513
514 if (account == null)
515 {
516
517 // XXX: The LocalUserAccountServicesConnector is currently registering its inner service rather than
518 // itself!
519// if (scene.UserAccountService is LocalUserAccountServicesConnector)
520// {
521// IUserAccountService innerUas
522// = ((LocalUserAccountServicesConnector)scene.UserAccountService).UserAccountService;
523//
524// m_log.DebugFormat("B {0}", innerUas.GetType());
525//
526// if (innerUas is UserAccountService)
527// {
528
529 if (scene.UserAccountService is UserAccountService)
530 {
531 string password = MainConsole.Instance.PasswdPrompt("Password");
532 string email = MainConsole.Instance.CmdPrompt("Email", "");
533
534 // TODO: Where do we put m_regInfo.ScopeID?
535 account = ((UserAccountService)scene.UserAccountService).CreateUser(first, last, password, email);
536 }
537// }
538 }
539
540 if (account == null)
541 {
542 m_log.ErrorFormat(
543 "[OPENSIM]: Unable to store account. If this simulator is connected to a grid, you must create the estate owner account first.");
544 }
545 else
546 {
547 regionInfo.EstateSettings.EstateOwner = account.PrincipalID;
548 regionInfo.EstateSettings.Save();
549 }
550 }
551
547 private void ShutdownRegion(Scene scene) 552 private void ShutdownRegion(Scene scene)
548 { 553 {
549 m_log.DebugFormat("[SHUTDOWN]: Shutting down region {0}", scene.RegionInfo.RegionName); 554 m_log.DebugFormat("[SHUTDOWN]: Shutting down region {0}", scene.RegionInfo.RegionName);
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs
index df31089..1ffd480 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs
@@ -124,6 +124,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts
124 if (!m_Enabled) 124 if (!m_Enabled)
125 return; 125 return;
126 126
127 // FIXME: Why do we bother setting this module and caching up if we just end up registering the inner
128 // user account service?!
127 scene.RegisterModuleInterface<IUserAccountService>(UserAccountService); 129 scene.RegisterModuleInterface<IUserAccountService>(UserAccountService);
128 scene.RegisterModuleInterface<IUserAccountCacheModule>(m_Cache); 130 scene.RegisterModuleInterface<IUserAccountCacheModule>(m_Cache);
129 } 131 }