aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/UserServer
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Grid/UserServer')
-rw-r--r--OpenSim/Grid/UserServer/Main.cs64
-rw-r--r--OpenSim/Grid/UserServer/UserLoginService.cs6
-rw-r--r--OpenSim/Grid/UserServer/UserManager.cs8
3 files changed, 31 insertions, 47 deletions
diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs
index 9c8fe23..cab5860 100644
--- a/OpenSim/Grid/UserServer/Main.cs
+++ b/OpenSim/Grid/UserServer/Main.cs
@@ -56,7 +56,6 @@ namespace OpenSim.Grid.UserServer
56 public UserLoginService m_loginService; 56 public UserLoginService m_loginService;
57 public GridInfoService m_gridInfoService; 57 public GridInfoService m_gridInfoService;
58 public MessageServersConnector m_messagesService; 58 public MessageServersConnector m_messagesService;
59 protected IInterServiceInventoryServices m_interServiceInventoryService;
60 59
61 private UUID m_lastCreatedUser = UUID.Random(); 60 private UUID m_lastCreatedUser = UUID.Random();
62 61
@@ -94,17 +93,16 @@ namespace OpenSim.Grid.UserServer
94 93
95 m_stats = StatsManager.StartCollectingUserStats(); 94 m_stats = StatsManager.StartCollectingUserStats();
96 95
97 m_log.Info("[REGION]: Establishing data connection"); 96 m_log.Info("[STARTUP]: Establishing data connection");
98 97
99 StartupUserManager(); 98 IInterServiceInventoryServices inventoryService = new OGS1InterServiceInventoryService(Cfg.InventoryUrl);
100 99
100 StartupUserManager(inventoryService);
101 m_userManager.AddPlugin(Cfg.DatabaseProvider, Cfg.DatabaseConnect); 101 m_userManager.AddPlugin(Cfg.DatabaseProvider, Cfg.DatabaseConnect);
102 102
103 m_gridInfoService = new GridInfoService(); 103 m_gridInfoService = new GridInfoService();
104 104
105 m_interServiceInventoryService = new OGS1InterServiceInventoryService(Cfg.InventoryUrl); 105 StartupLoginService(inventoryService);
106
107 StartupLoginService();
108 106
109 m_messagesService = new MessageServersConnector(); 107 m_messagesService = new MessageServersConnector();
110 108
@@ -116,22 +114,30 @@ namespace OpenSim.Grid.UserServer
116 m_messagesService.OnRegionStartup += HandleRegionStartup; 114 m_messagesService.OnRegionStartup += HandleRegionStartup;
117 m_messagesService.OnRegionShutdown += HandleRegionShutdown; 115 m_messagesService.OnRegionShutdown += HandleRegionShutdown;
118 116
119 m_log.Info("[REGION]: Starting HTTP process"); 117 m_log.Info("[STARTUP]: Starting HTTP process");
120 118
121 m_httpServer = new BaseHttpServer(Cfg.HttpPort); 119 m_httpServer = new BaseHttpServer(Cfg.HttpPort);
122 AddHttpHandlers(); 120 AddHttpHandlers();
123 m_httpServer.Start(); 121 m_httpServer.Start();
124 } 122 }
125 123
126 protected virtual void StartupUserManager() 124 /// <summary>
125 /// Start up the user manager
126 /// </summary>
127 /// <param name="inventoryService"></param>
128 protected virtual void StartupUserManager(IInterServiceInventoryServices inventoryService)
127 { 129 {
128 m_userManager = new UserManager(); 130 m_userManager = new UserManager(new OGS1InterServiceInventoryService(Cfg.InventoryUrl));
129 } 131 }
130 132
131 protected virtual void StartupLoginService() 133 /// <summary>
134 /// Start up the login service
135 /// </summary>
136 /// <param name="inventoryService"></param>
137 protected virtual void StartupLoginService(IInterServiceInventoryServices inventoryService)
132 { 138 {
133 m_loginService = new UserLoginService( 139 m_loginService = new UserLoginService(
134 m_userManager, m_interServiceInventoryService, new LibraryRootFolder(), Cfg, Cfg.DefaultStartupMsg); 140 m_userManager, inventoryService, new LibraryRootFolder(), Cfg, Cfg.DefaultStartupMsg);
135 } 141 }
136 142
137 protected virtual void AddHttpHandlers() 143 protected virtual void AddHttpHandlers()
@@ -256,39 +262,7 @@ namespace OpenSim.Grid.UserServer
256 262
257 if (null == m_userManager.GetUserProfile(firstName, lastName)) 263 if (null == m_userManager.GetUserProfile(firstName, lastName))
258 { 264 {
259 password = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty); 265 m_lastCreatedUser = m_userManager.AddUser(firstName, lastName, password, email, regX, regY);
260
261 UUID userID = new UUID();
262
263 try
264 {
265 userID = m_userManager.AddUserProfile(firstName, lastName, password, email, regX, regY);
266 }
267 catch (Exception ex)
268 {
269 m_log.ErrorFormat("[USERS]: Error creating user: {0}", ex.ToString());
270 }
271
272 try
273 {
274 if (!m_interServiceInventoryService.CreateNewUserInventory(userID))
275 {
276 throw new Exception(
277 String.Format("The inventory creation request for user {0} did not succeed."
278 + " Please contact your inventory service provider for more information.", userID));
279 }
280 }
281 catch (WebException)
282 {
283 m_log.ErrorFormat("[USERS]: Could not contact the inventory service at {0} to create an inventory for {1}",
284 Cfg.InventoryUrl + "CreateInventory/", userID);
285 }
286 catch (Exception e)
287 {
288 m_log.ErrorFormat("[USERS]: Error creating inventory for user: {0}", e);
289 }
290
291 m_lastCreatedUser = userID;
292 } 266 }
293 else 267 else
294 { 268 {
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs
index 82d5af5..2308910 100644
--- a/OpenSim/Grid/UserServer/UserLoginService.cs
+++ b/OpenSim/Grid/UserServer/UserLoginService.cs
@@ -44,6 +44,9 @@ namespace OpenSim.Grid.UserServer
44 ulong regionhandle, float positionX, float positionY, float positionZ, 44 ulong regionhandle, float positionX, float positionY, float positionZ,
45 string firstname, string lastname); 45 string firstname, string lastname);
46 46
47 /// <summary>
48 /// Login service used in grid mode.
49 /// </summary>
47 public class UserLoginService : LoginService 50 public class UserLoginService : LoginService
48 { 51 {
49 protected static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 52 protected static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@@ -65,17 +68,16 @@ namespace OpenSim.Grid.UserServer
65 m_config = config; 68 m_config = config;
66 m_inventoryService = inventoryService; 69 m_inventoryService = inventoryService;
67 } 70 }
71
68 public void setloginlevel(int level) 72 public void setloginlevel(int level)
69 { 73 {
70 m_minLoginLevel = level; 74 m_minLoginLevel = level;
71 m_log.InfoFormat("[GRID] Login Level set to {0} ", level); 75 m_log.InfoFormat("[GRID] Login Level set to {0} ", level);
72
73 } 76 }
74 public void setwelcometext(string text) 77 public void setwelcometext(string text)
75 { 78 {
76 m_welcomeMessage = text; 79 m_welcomeMessage = text;
77 m_log.InfoFormat("[GRID] Login text set to {0} ", text); 80 m_log.InfoFormat("[GRID] Login text set to {0} ", text);
78
79 } 81 }
80 82
81 public override void LogOffUser(UserProfileData theUser, string message) 83 public override void LogOffUser(UserProfileData theUser, string message)
diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs
index 76f83b7..377ff3a 100644
--- a/OpenSim/Grid/UserServer/UserManager.cs
+++ b/OpenSim/Grid/UserServer/UserManager.cs
@@ -46,6 +46,14 @@ namespace OpenSim.Grid.UserServer
46 46
47 public event logOffUser OnLogOffUser; 47 public event logOffUser OnLogOffUser;
48 private logOffUser handlerLogOffUser; 48 private logOffUser handlerLogOffUser;
49
50 /// <summary>
51 /// Constructor
52 /// </summary>
53 /// <param name="interServiceInventoryService"></param>
54 public UserManager(IInterServiceInventoryServices interServiceInventoryService)
55 : base(interServiceInventoryService)
56 {}
49 57
50 /// <summary> 58 /// <summary>
51 /// Deletes an active agent session 59 /// Deletes an active agent session