diff options
8 files changed, 153 insertions, 14 deletions
diff --git a/OpenSim/Client/Linden/LLStandaloneLoginModule.cs b/OpenSim/Client/Linden/LLStandaloneLoginModule.cs index 6474feb..bfafdc3 100644 --- a/OpenSim/Client/Linden/LLStandaloneLoginModule.cs +++ b/OpenSim/Client/Linden/LLStandaloneLoginModule.cs | |||
@@ -111,7 +111,7 @@ namespace OpenSim.Client.Linden | |||
111 | IHttpServer httpServer = m_firstScene.CommsManager.HttpServer; | 111 | IHttpServer httpServer = m_firstScene.CommsManager.HttpServer; |
112 | 112 | ||
113 | //TODO: fix the casting of the user service, maybe by registering the userManagerBase with scenes, or refactoring so we just need a IUserService reference | 113 | //TODO: fix the casting of the user service, maybe by registering the userManagerBase with scenes, or refactoring so we just need a IUserService reference |
114 | m_loginService = new LLStandaloneLoginService((UserManagerBase)m_firstScene.CommsManager.UserAdminService, welcomeMessage, m_firstScene.CommsManager.InterServiceInventoryService, m_firstScene.CommsManager.NetworkServersInfo, authenticate, rootFolder, this); | 114 | m_loginService = new LLStandaloneLoginService((UserManagerBase)m_firstScene.CommsManager.UserAdminService, welcomeMessage, m_firstScene.InventoryService, m_firstScene.CommsManager.NetworkServersInfo, authenticate, rootFolder, this); |
115 | 115 | ||
116 | httpServer.AddXmlRPCHandler("login_to_simulator", m_loginService.XmlRpcLoginMethod); | 116 | httpServer.AddXmlRPCHandler("login_to_simulator", m_loginService.XmlRpcLoginMethod); |
117 | 117 | ||
diff --git a/OpenSim/Client/Linden/LLStandaloneLoginService.cs b/OpenSim/Client/Linden/LLStandaloneLoginService.cs index 6b217e6..c2de348 100644 --- a/OpenSim/Client/Linden/LLStandaloneLoginService.cs +++ b/OpenSim/Client/Linden/LLStandaloneLoginService.cs | |||
@@ -42,6 +42,7 @@ using OpenSim.Framework.Communications.Capabilities; | |||
42 | using OpenSim.Framework.Servers; | 42 | using OpenSim.Framework.Servers; |
43 | using OpenSim.Region.Framework.Scenes; | 43 | using OpenSim.Region.Framework.Scenes; |
44 | using OpenSim.Region.Framework.Interfaces; | 44 | using OpenSim.Region.Framework.Interfaces; |
45 | using OpenSim.Services.Interfaces; | ||
45 | 46 | ||
46 | namespace OpenSim.Client.Linden | 47 | namespace OpenSim.Client.Linden |
47 | { | 48 | { |
@@ -59,7 +60,7 @@ namespace OpenSim.Client.Linden | |||
59 | 60 | ||
60 | public LLStandaloneLoginService( | 61 | public LLStandaloneLoginService( |
61 | UserManagerBase userManager, string welcomeMess, | 62 | UserManagerBase userManager, string welcomeMess, |
62 | IInterServiceInventoryServices interServiceInventoryService, | 63 | IInventoryService interServiceInventoryService, |
63 | NetworkServersInfo serversInfo, | 64 | NetworkServersInfo serversInfo, |
64 | bool authenticate, LibraryRootFolder libraryRootFolder, ILoginServiceToRegionsConnector regionsConnector) | 65 | bool authenticate, LibraryRootFolder libraryRootFolder, ILoginServiceToRegionsConnector regionsConnector) |
65 | : base(userManager, libraryRootFolder, welcomeMess) | 66 | : base(userManager, libraryRootFolder, welcomeMess) |
@@ -69,7 +70,7 @@ namespace OpenSim.Client.Linden | |||
69 | m_defaultHomeY = this.m_serversInfo.DefaultHomeLocY; | 70 | m_defaultHomeY = this.m_serversInfo.DefaultHomeLocY; |
70 | m_authUsers = authenticate; | 71 | m_authUsers = authenticate; |
71 | 72 | ||
72 | m_inventoryService = interServiceInventoryService; | 73 | m_InventoryService = interServiceInventoryService; |
73 | m_regionsConnector = regionsConnector; | 74 | m_regionsConnector = regionsConnector; |
74 | // Standard behavior: In StandAlone, silent logout of last hung session | 75 | // Standard behavior: In StandAlone, silent logout of last hung session |
75 | m_warn_already_logged = false; | 76 | m_warn_already_logged = false; |
diff --git a/OpenSim/Framework/Communications/Services/HGLoginAuthService.cs b/OpenSim/Framework/Communications/Services/HGLoginAuthService.cs index 0637a1e..8e0205c 100644 --- a/OpenSim/Framework/Communications/Services/HGLoginAuthService.cs +++ b/OpenSim/Framework/Communications/Services/HGLoginAuthService.cs | |||
@@ -78,7 +78,7 @@ namespace OpenSim.Framework.Communications.Services | |||
78 | 78 | ||
79 | m_interServiceInventoryService = interServiceInventoryService; | 79 | m_interServiceInventoryService = interServiceInventoryService; |
80 | m_regionsConnector = regionsConnector; | 80 | m_regionsConnector = regionsConnector; |
81 | m_inventoryService = interServiceInventoryService; | 81 | m_interInventoryService = interServiceInventoryService; |
82 | } | 82 | } |
83 | 83 | ||
84 | public void SetServersInfo(NetworkServersInfo sinfo) | 84 | public void SetServersInfo(NetworkServersInfo sinfo) |
diff --git a/OpenSim/Framework/Communications/Services/LoginService.cs b/OpenSim/Framework/Communications/Services/LoginService.cs index 900a3d9..7eb98d7 100644 --- a/OpenSim/Framework/Communications/Services/LoginService.cs +++ b/OpenSim/Framework/Communications/Services/LoginService.cs | |||
@@ -41,6 +41,7 @@ using OpenMetaverse.StructuredData; | |||
41 | using OpenSim.Framework; | 41 | using OpenSim.Framework; |
42 | using OpenSim.Framework.Communications.Cache; | 42 | using OpenSim.Framework.Communications.Cache; |
43 | using OpenSim.Framework.Statistics; | 43 | using OpenSim.Framework.Statistics; |
44 | using OpenSim.Services.Interfaces; | ||
44 | 45 | ||
45 | namespace OpenSim.Framework.Communications.Services | 46 | namespace OpenSim.Framework.Communications.Services |
46 | { | 47 | { |
@@ -66,7 +67,9 @@ namespace OpenSim.Framework.Communications.Services | |||
66 | /// <summary> | 67 | /// <summary> |
67 | /// Used by the login service to make requests to the inventory service. | 68 | /// Used by the login service to make requests to the inventory service. |
68 | /// </summary> | 69 | /// </summary> |
69 | protected IInterServiceInventoryServices m_inventoryService; | 70 | protected IInterServiceInventoryServices m_interInventoryService; |
71 | // Hack | ||
72 | protected IInventoryService m_InventoryService; | ||
70 | 73 | ||
71 | /// <summary> | 74 | /// <summary> |
72 | /// Constructor | 75 | /// Constructor |
@@ -1047,7 +1050,10 @@ namespace OpenSim.Framework.Communications.Services | |||
1047 | List<InventoryItemBase> gestures = null; | 1050 | List<InventoryItemBase> gestures = null; |
1048 | try | 1051 | try |
1049 | { | 1052 | { |
1050 | gestures = m_inventoryService.GetActiveGestures(theUser.ID); | 1053 | if (m_InventoryService != null) |
1054 | gestures = m_InventoryService.GetActiveGestures(theUser.ID); | ||
1055 | else | ||
1056 | gestures = m_interInventoryService.GetActiveGestures(theUser.ID); | ||
1051 | } | 1057 | } |
1052 | catch (Exception e) | 1058 | catch (Exception e) |
1053 | { | 1059 | { |
@@ -1076,7 +1082,15 @@ namespace OpenSim.Framework.Communications.Services | |||
1076 | /// <exception cref='System.Exception'>This will be thrown if there is a problem with the inventory service</exception> | 1082 | /// <exception cref='System.Exception'>This will be thrown if there is a problem with the inventory service</exception> |
1077 | protected InventoryData GetInventorySkeleton(UUID userID) | 1083 | protected InventoryData GetInventorySkeleton(UUID userID) |
1078 | { | 1084 | { |
1079 | List<InventoryFolderBase> folders = m_inventoryService.GetInventorySkeleton(userID); | 1085 | List<InventoryFolderBase> folders = null; |
1086 | if (m_InventoryService != null) | ||
1087 | { | ||
1088 | folders = m_InventoryService.GetInventorySkeleton(userID); | ||
1089 | } | ||
1090 | else | ||
1091 | { | ||
1092 | folders = m_interInventoryService.GetInventorySkeleton(userID); | ||
1093 | } | ||
1080 | 1094 | ||
1081 | // If we have user auth but no inventory folders for some reason, create a new set of folders. | 1095 | // If we have user auth but no inventory folders for some reason, create a new set of folders. |
1082 | if (folders == null || folders.Count == 0) | 1096 | if (folders == null || folders.Count == 0) |
@@ -1088,7 +1102,7 @@ namespace OpenSim.Framework.Communications.Services | |||
1088 | // tools are creating the user profile directly in the database without creating the inventory. At | 1102 | // tools are creating the user profile directly in the database without creating the inventory. At |
1089 | // this time we'll accomodate them by lazily creating the user inventory now if it doesn't already | 1103 | // this time we'll accomodate them by lazily creating the user inventory now if it doesn't already |
1090 | // exist. | 1104 | // exist. |
1091 | if (!m_inventoryService.CreateNewUserInventory(userID)) | 1105 | if ((m_interInventoryService != null) && !m_interInventoryService.CreateNewUserInventory(userID)) |
1092 | { | 1106 | { |
1093 | throw new Exception( | 1107 | throw new Exception( |
1094 | String.Format( | 1108 | String.Format( |
@@ -1099,7 +1113,10 @@ namespace OpenSim.Framework.Communications.Services | |||
1099 | 1113 | ||
1100 | m_log.InfoFormat("[LOGIN]: A new inventory skeleton was successfully created for user {0}", userID); | 1114 | m_log.InfoFormat("[LOGIN]: A new inventory skeleton was successfully created for user {0}", userID); |
1101 | 1115 | ||
1102 | folders = m_inventoryService.GetInventorySkeleton(userID); | 1116 | if (m_InventoryService != null) |
1117 | folders = m_InventoryService.GetInventorySkeleton(userID); | ||
1118 | else | ||
1119 | folders = m_interInventoryService.GetInventorySkeleton(userID); | ||
1103 | 1120 | ||
1104 | if (folders == null || folders.Count == 0) | 1121 | if (folders == null || folders.Count == 0) |
1105 | { | 1122 | { |
diff --git a/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs b/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs index 7a622ad..d637ef0 100644 --- a/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs +++ b/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs | |||
@@ -39,6 +39,8 @@ using OpenSim.Region.Communications.Local; | |||
39 | using OpenSim.Tests.Common.Mock; | 39 | using OpenSim.Tests.Common.Mock; |
40 | using OpenSim.Client.Linden; | 40 | using OpenSim.Client.Linden; |
41 | using OpenSim.Tests.Common; | 41 | using OpenSim.Tests.Common; |
42 | using OpenSim.Services.Interfaces; | ||
43 | using OpenMetaverse; | ||
42 | 44 | ||
43 | namespace OpenSim.Framework.Communications.Tests | 45 | namespace OpenSim.Framework.Communications.Tests |
44 | { | 46 | { |
@@ -73,7 +75,7 @@ namespace OpenSim.Framework.Communications.Tests | |||
73 | m_localUserServices = (LocalUserServices) m_commsManager.UserService; | 75 | m_localUserServices = (LocalUserServices) m_commsManager.UserService; |
74 | m_localUserServices.AddUser(m_firstName,m_lastName,"boingboing","abc@ftw.com",42,43); | 76 | m_localUserServices.AddUser(m_firstName,m_lastName,"boingboing","abc@ftw.com",42,43); |
75 | 77 | ||
76 | m_loginService = new LLStandaloneLoginService((UserManagerBase) m_localUserServices, "Hello folks", m_commsManager.InterServiceInventoryService, | 78 | m_loginService = new LLStandaloneLoginService((UserManagerBase) m_localUserServices, "Hello folks", new TestInventoryService(), |
77 | m_commsManager.NetworkServersInfo, true, new LibraryRootFolder(String.Empty), m_regionConnector); | 79 | m_commsManager.NetworkServersInfo, true, new LibraryRootFolder(String.Empty), m_regionConnector); |
78 | 80 | ||
79 | m_userProfileData = m_localUserServices.GetUserProfile(m_firstName, m_lastName); | 81 | m_userProfileData = m_localUserServices.GetUserProfile(m_firstName, m_lastName); |
@@ -88,7 +90,7 @@ namespace OpenSim.Framework.Communications.Tests | |||
88 | TestHelper.InMethod(); | 90 | TestHelper.InMethod(); |
89 | // We want to use our own LoginService for this test, one that | 91 | // We want to use our own LoginService for this test, one that |
90 | // doesn't require authentication. | 92 | // doesn't require authentication. |
91 | LoginService loginService = new LLStandaloneLoginService((UserManagerBase)m_commsManager.UserService, "Hello folks", m_commsManager.InterServiceInventoryService, | 93 | LoginService loginService = new LLStandaloneLoginService((UserManagerBase)m_commsManager.UserService, "Hello folks", new TestInventoryService(), |
92 | m_commsManager.NetworkServersInfo, false, new LibraryRootFolder(String.Empty), m_regionConnector); | 94 | m_commsManager.NetworkServersInfo, false, new LibraryRootFolder(String.Empty), m_regionConnector); |
93 | 95 | ||
94 | Hashtable loginParams = new Hashtable(); | 96 | Hashtable loginParams = new Hashtable(); |
@@ -440,4 +442,123 @@ namespace OpenSim.Framework.Communications.Tests | |||
440 | #endregion | 442 | #endregion |
441 | } | 443 | } |
442 | } | 444 | } |
445 | |||
446 | class TestInventoryService : IInventoryService | ||
447 | { | ||
448 | public TestInventoryService() | ||
449 | { | ||
450 | } | ||
451 | |||
452 | /// <summary> | ||
453 | /// <see cref="OpenSim.Framework.Communications.IInterServiceInventoryServices"/> | ||
454 | /// </summary> | ||
455 | /// <param name="userId"></param> | ||
456 | /// <returns></returns> | ||
457 | public bool CreateUserInventory(UUID userId) | ||
458 | { | ||
459 | return false; | ||
460 | } | ||
461 | |||
462 | /// <summary> | ||
463 | /// <see cref="OpenSim.Framework.Communications.IInterServiceInventoryServices"/> | ||
464 | /// </summary> | ||
465 | /// <param name="userId"></param> | ||
466 | /// <returns></returns> | ||
467 | public List<InventoryFolderBase> GetInventorySkeleton(UUID userId) | ||
468 | { | ||
469 | List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); | ||
470 | InventoryFolderBase folder = new InventoryFolderBase(); | ||
471 | folder.ID = UUID.Random(); | ||
472 | folder.Owner = userId; | ||
473 | folders.Add(folder); | ||
474 | return folders; | ||
475 | } | ||
476 | |||
477 | /// <summary> | ||
478 | /// Returns a list of all the active gestures in a user's inventory. | ||
479 | /// </summary> | ||
480 | /// <param name="userId"> | ||
481 | /// The <see cref="UUID"/> of the user | ||
482 | /// </param> | ||
483 | /// <returns> | ||
484 | /// A flat list of the gesture items. | ||
485 | /// </returns> | ||
486 | public List<InventoryItemBase> GetActiveGestures(UUID userId) | ||
487 | { | ||
488 | return null; | ||
489 | } | ||
490 | |||
491 | public InventoryCollection GetUserInventory(UUID userID) | ||
492 | { | ||
493 | return null; | ||
494 | } | ||
495 | |||
496 | public void GetUserInventory(UUID userID, OpenSim.Services.Interfaces.InventoryReceiptCallback callback) | ||
497 | { | ||
498 | } | ||
499 | |||
500 | public List<InventoryItemBase> GetFolderItems(UUID folderID) | ||
501 | { | ||
502 | return null; | ||
503 | } | ||
504 | |||
505 | public bool AddFolder(InventoryFolderBase folder) | ||
506 | { | ||
507 | return false; | ||
508 | } | ||
509 | |||
510 | public bool UpdateFolder(InventoryFolderBase folder) | ||
511 | { | ||
512 | return false; | ||
513 | } | ||
514 | |||
515 | public bool MoveFolder(InventoryFolderBase folder) | ||
516 | { | ||
517 | return false; | ||
518 | } | ||
519 | |||
520 | public bool PurgeFolder(InventoryFolderBase folder) | ||
521 | { | ||
522 | return false; | ||
523 | } | ||
524 | |||
525 | public bool AddItem(InventoryItemBase item) | ||
526 | { | ||
527 | return false; | ||
528 | } | ||
529 | |||
530 | public bool UpdateItem(InventoryItemBase item) | ||
531 | { | ||
532 | return false; | ||
533 | } | ||
534 | |||
535 | public bool DeleteItem(InventoryItemBase item) | ||
536 | { | ||
537 | return false; | ||
538 | } | ||
539 | |||
540 | public InventoryItemBase QueryItem(InventoryItemBase item) | ||
541 | { | ||
542 | return null; | ||
543 | } | ||
544 | |||
545 | public InventoryFolderBase QueryFolder(InventoryFolderBase folder) | ||
546 | { | ||
547 | return null; | ||
548 | } | ||
549 | |||
550 | public bool HasInventoryForUser(UUID userID) | ||
551 | { | ||
552 | return false; | ||
553 | } | ||
554 | |||
555 | public InventoryFolderBase RequestRootFolder(UUID userID) | ||
556 | { | ||
557 | InventoryFolderBase root = new InventoryFolderBase(); | ||
558 | root.ID = UUID.Random(); | ||
559 | root.Owner = userID; | ||
560 | root.ParentID = UUID.Zero; | ||
561 | return root; | ||
562 | } | ||
563 | } | ||
443 | } | 564 | } |
diff --git a/OpenSim/Grid/UserServer.Modules/UserLoginAuthService.cs b/OpenSim/Grid/UserServer.Modules/UserLoginAuthService.cs index 30aea14..c4c82e5 100644 --- a/OpenSim/Grid/UserServer.Modules/UserLoginAuthService.cs +++ b/OpenSim/Grid/UserServer.Modules/UserLoginAuthService.cs | |||
@@ -66,7 +66,7 @@ namespace OpenSim.Grid.UserServer.Modules | |||
66 | m_config = config; | 66 | m_config = config; |
67 | m_defaultHomeX = m_config.DefaultX; | 67 | m_defaultHomeX = m_config.DefaultX; |
68 | m_defaultHomeY = m_config.DefaultY; | 68 | m_defaultHomeY = m_config.DefaultY; |
69 | m_inventoryService = inventoryService; | 69 | m_interInventoryService = inventoryService; |
70 | m_regionProfileService = regionProfileService; | 70 | m_regionProfileService = regionProfileService; |
71 | 71 | ||
72 | NetworkServersInfo serversinfo = new NetworkServersInfo(1000, 1000); | 72 | NetworkServersInfo serversinfo = new NetworkServersInfo(1000, 1000); |
diff --git a/OpenSim/Grid/UserServer.Modules/UserLoginService.cs b/OpenSim/Grid/UserServer.Modules/UserLoginService.cs index 122ad9d..dff6059 100644 --- a/OpenSim/Grid/UserServer.Modules/UserLoginService.cs +++ b/OpenSim/Grid/UserServer.Modules/UserLoginService.cs | |||
@@ -74,7 +74,7 @@ namespace OpenSim.Grid.UserServer.Modules | |||
74 | m_config = config; | 74 | m_config = config; |
75 | m_defaultHomeX = m_config.DefaultX; | 75 | m_defaultHomeX = m_config.DefaultX; |
76 | m_defaultHomeY = m_config.DefaultY; | 76 | m_defaultHomeY = m_config.DefaultY; |
77 | m_inventoryService = inventoryService; | 77 | m_interInventoryService = inventoryService; |
78 | m_regionProfileService = regionProfileService; | 78 | m_regionProfileService = regionProfileService; |
79 | } | 79 | } |
80 | 80 | ||
diff --git a/OpenSim/Region/CoreModules/ServiceConnectors/Inventory/HGInventoryBroker.cs b/OpenSim/Region/CoreModules/ServiceConnectors/Inventory/HGInventoryBroker.cs index 03b4873..4d741a9 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectors/Inventory/HGInventoryBroker.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectors/Inventory/HGInventoryBroker.cs | |||
@@ -173,7 +173,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectors.Inventory | |||
173 | 173 | ||
174 | public List<InventoryFolderBase> GetInventorySkeleton(UUID userId) | 174 | public List<InventoryFolderBase> GetInventorySkeleton(UUID userId) |
175 | { | 175 | { |
176 | return new List<InventoryFolderBase>(); | 176 | return m_GridService.GetInventorySkeleton(userId); |
177 | } | 177 | } |
178 | 178 | ||
179 | public InventoryCollection GetUserInventory(UUID userID) | 179 | public InventoryCollection GetUserInventory(UUID userID) |