diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Framework/UserManager/UserManagerBase.cs | 60 |
1 files changed, 25 insertions, 35 deletions
diff --git a/OpenSim/Framework/UserManager/UserManagerBase.cs b/OpenSim/Framework/UserManager/UserManagerBase.cs index d06059e..560752e 100644 --- a/OpenSim/Framework/UserManager/UserManagerBase.cs +++ b/OpenSim/Framework/UserManager/UserManagerBase.cs | |||
@@ -43,7 +43,7 @@ using System.Security.Cryptography; | |||
43 | 43 | ||
44 | namespace OpenSim.Framework.UserManagement | 44 | namespace OpenSim.Framework.UserManagement |
45 | { | 45 | { |
46 | public class UserManagerBase | 46 | public abstract class UserManagerBase |
47 | { | 47 | { |
48 | public OpenSim.Framework.Interfaces.UserConfig _config; | 48 | public OpenSim.Framework.Interfaces.UserConfig _config; |
49 | Dictionary<string, IUserData> _plugins = new Dictionary<string, IUserData>(); | 49 | Dictionary<string, IUserData> _plugins = new Dictionary<string, IUserData>(); |
@@ -142,14 +142,9 @@ namespace OpenSim.Framework.UserManagement | |||
142 | try | 142 | try |
143 | { | 143 | { |
144 | UserProfileData profile = plugin.Value.getUserByName(fname,lname); | 144 | UserProfileData profile = plugin.Value.getUserByName(fname,lname); |
145 | try | 145 | |
146 | { | 146 | profile.currentAgent = getUserAgent(profile.UUID); |
147 | profile.currentAgent = getUserAgent(profile.UUID); | 147 | |
148 | } | ||
149 | catch (Exception e) | ||
150 | { | ||
151 | // Ignore | ||
152 | } | ||
153 | return profile; | 148 | return profile; |
154 | } | 149 | } |
155 | catch (Exception e) | 150 | catch (Exception e) |
@@ -238,16 +233,14 @@ namespace OpenSim.Framework.UserManagement | |||
238 | /// </summary> | 233 | /// </summary> |
239 | /// <param name="profile">The users profile</param> | 234 | /// <param name="profile">The users profile</param> |
240 | /// <param name="request">The users loginrequest</param> | 235 | /// <param name="request">The users loginrequest</param> |
241 | public void CreateAgent(ref UserProfileData profile, XmlRpcRequest request) | 236 | public void CreateAgent(UserProfileData profile, XmlRpcRequest request) |
242 | { | 237 | { |
243 | Hashtable requestData = (Hashtable)request.Params[0]; | 238 | Hashtable requestData = (Hashtable)request.Params[0]; |
244 | 239 | ||
245 | UserAgentData agent = new UserAgentData(); | 240 | UserAgentData agent = new UserAgentData(); |
246 | 241 | ||
247 | // User connection | 242 | // User connection |
248 | agent.agentIP = ""; | ||
249 | agent.agentOnline = true; | 243 | agent.agentOnline = true; |
250 | agent.agentPort = 0; | ||
251 | 244 | ||
252 | // Generate sessions | 245 | // Generate sessions |
253 | RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider(); | 246 | RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider(); |
@@ -282,7 +275,7 @@ namespace OpenSim.Framework.UserManagement | |||
282 | //SimProfile SimInfo = new SimProfile(); | 275 | //SimProfile SimInfo = new SimProfile(); |
283 | //SimInfo = SimInfo.LoadFromGrid(theUser.currentAgent.currentHandle, _config.GridServerURL, _config.GridSendKey, _config.GridRecvKey); | 276 | //SimInfo = SimInfo.LoadFromGrid(theUser.currentAgent.currentHandle, _config.GridServerURL, _config.GridSendKey, _config.GridRecvKey); |
284 | } | 277 | } |
285 | catch (Exception e) | 278 | catch (Exception) |
286 | { | 279 | { |
287 | 280 | ||
288 | } | 281 | } |
@@ -319,7 +312,7 @@ namespace OpenSim.Framework.UserManagement | |||
319 | /// <param name="profile">The users profile</param> | 312 | /// <param name="profile">The users profile</param> |
320 | /// <param name="password">The supplied password</param> | 313 | /// <param name="password">The supplied password</param> |
321 | /// <returns>Authenticated?</returns> | 314 | /// <returns>Authenticated?</returns> |
322 | public virtual bool AuthenticateUser(ref UserProfileData profile, string password) | 315 | public virtual bool AuthenticateUser(UserProfileData profile, string password) |
323 | { | 316 | { |
324 | OpenSim.Framework.Console.MainLog.Instance.Verbose( | 317 | OpenSim.Framework.Console.MainLog.Instance.Verbose( |
325 | "Authenticating " + profile.username + " " + profile.surname); | 318 | "Authenticating " + profile.username + " " + profile.surname); |
@@ -358,10 +351,7 @@ namespace OpenSim.Framework.UserManagement | |||
358 | /// </summary> | 351 | /// </summary> |
359 | /// <param name="response">The existing response</param> | 352 | /// <param name="response">The existing response</param> |
360 | /// <param name="theUser">The user profile</param> | 353 | /// <param name="theUser">The user profile</param> |
361 | public virtual void CustomiseResponse(ref LoginResponse response, ref UserProfileData theUser) | 354 | public abstract void CustomiseResponse( LoginResponse response, UserProfileData theUser); |
362 | { | ||
363 | |||
364 | } | ||
365 | 355 | ||
366 | /// <summary> | 356 | /// <summary> |
367 | /// Main user login function | 357 | /// Main user login function |
@@ -379,7 +369,7 @@ namespace OpenSim.Framework.UserManagement | |||
379 | string lastname = ""; | 369 | string lastname = ""; |
380 | string passwd = ""; | 370 | string passwd = ""; |
381 | 371 | ||
382 | UserProfileData TheUser; | 372 | UserProfileData userProfile; |
383 | LoginResponse logResponse = new LoginResponse(); | 373 | LoginResponse logResponse = new LoginResponse(); |
384 | 374 | ||
385 | if (GoodXML) | 375 | if (GoodXML) |
@@ -388,11 +378,11 @@ namespace OpenSim.Framework.UserManagement | |||
388 | lastname = (string)requestData["last"]; | 378 | lastname = (string)requestData["last"]; |
389 | passwd = (string)requestData["passwd"]; | 379 | passwd = (string)requestData["passwd"]; |
390 | 380 | ||
391 | TheUser = GetTheUser(firstname, lastname); | 381 | userProfile = GetTheUser(firstname, lastname); |
392 | if (TheUser == null) | 382 | if (userProfile == null) |
393 | return logResponse.CreateLoginFailedResponse(); | 383 | return logResponse.CreateLoginFailedResponse(); |
394 | 384 | ||
395 | GoodLogin = AuthenticateUser(ref TheUser, passwd); | 385 | GoodLogin = AuthenticateUser(userProfile, passwd); |
396 | } | 386 | } |
397 | else | 387 | else |
398 | { | 388 | { |
@@ -406,19 +396,19 @@ namespace OpenSim.Framework.UserManagement | |||
406 | else | 396 | else |
407 | { | 397 | { |
408 | // If we already have a session... | 398 | // If we already have a session... |
409 | if (TheUser.currentAgent != null && TheUser.currentAgent.agentOnline) | 399 | if (userProfile.currentAgent != null && userProfile.currentAgent.agentOnline) |
410 | { | 400 | { |
411 | // Reject the login | 401 | // Reject the login |
412 | return logResponse.CreateAlreadyLoggedInResponse(); | 402 | return logResponse.CreateAlreadyLoggedInResponse(); |
413 | } | 403 | } |
414 | // Otherwise... | 404 | // Otherwise... |
415 | // Create a new agent session | 405 | // Create a new agent session |
416 | CreateAgent(ref TheUser, request); | 406 | CreateAgent( userProfile, request); |
417 | 407 | ||
418 | try | 408 | try |
419 | { | 409 | { |
420 | 410 | ||
421 | LLUUID AgentID = TheUser.UUID; | 411 | LLUUID AgentID = userProfile.UUID; |
422 | 412 | ||
423 | // Inventory Library Section | 413 | // Inventory Library Section |
424 | ArrayList AgentInventoryArray = new ArrayList(); | 414 | ArrayList AgentInventoryArray = new ArrayList(); |
@@ -446,32 +436,32 @@ namespace OpenSim.Framework.UserManagement | |||
446 | // Circuit Code | 436 | // Circuit Code |
447 | uint circode = (uint)(Util.RandomClass.Next()); | 437 | uint circode = (uint)(Util.RandomClass.Next()); |
448 | 438 | ||
449 | logResponse.Lastname = TheUser.surname; | 439 | logResponse.Lastname = userProfile.surname; |
450 | logResponse.Firstname = TheUser.username; | 440 | logResponse.Firstname = userProfile.username; |
451 | logResponse.AgentID = AgentID.ToStringHyphenated(); | 441 | logResponse.AgentID = AgentID.ToStringHyphenated(); |
452 | logResponse.SessionID = TheUser.currentAgent.sessionID.ToStringHyphenated(); | 442 | logResponse.SessionID = userProfile.currentAgent.sessionID.ToStringHyphenated(); |
453 | logResponse.SecureSessionID = TheUser.currentAgent.secureSessionID.ToStringHyphenated(); | 443 | logResponse.SecureSessionID = userProfile.currentAgent.secureSessionID.ToStringHyphenated(); |
454 | logResponse.InventoryRoot = InventoryRoot; | 444 | logResponse.InventoryRoot = InventoryRoot; |
455 | logResponse.InventorySkeleton = AgentInventoryArray; | 445 | logResponse.InventorySkeleton = AgentInventoryArray; |
456 | logResponse.CircuitCode = (Int32)circode; | 446 | logResponse.CircuitCode = (Int32)circode; |
457 | logResponse.RegionX = 0; //overwritten | 447 | //logResponse.RegionX = 0; //overwritten |
458 | logResponse.RegionY = 0; //overwritten | 448 | //logResponse.RegionY = 0; //overwritten |
459 | logResponse.Home = "!!null temporary value {home}!!"; // Overwritten | 449 | logResponse.Home = "!!null temporary value {home}!!"; // Overwritten |
460 | //logResponse.LookAt = "\n[r" + TheUser.homeLookAt.X.ToString() + ",r" + TheUser.homeLookAt.Y.ToString() + ",r" + TheUser.homeLookAt.Z.ToString() + "]\n"; | 450 | //logResponse.LookAt = "\n[r" + TheUser.homeLookAt.X.ToString() + ",r" + TheUser.homeLookAt.Y.ToString() + ",r" + TheUser.homeLookAt.Z.ToString() + "]\n"; |
461 | logResponse.SimAddress = "127.0.0.1"; //overwritten | 451 | //logResponse.SimAddress = "127.0.0.1"; //overwritten |
462 | logResponse.SimPort = 0; //overwritten | 452 | //logResponse.SimPort = 0; //overwritten |
463 | logResponse.Message = this.GetMessage(); | 453 | logResponse.Message = this.GetMessage(); |
464 | 454 | ||
465 | try | 455 | try |
466 | { | 456 | { |
467 | this.CustomiseResponse(ref logResponse, ref TheUser); | 457 | this.CustomiseResponse( logResponse, userProfile); |
468 | } | 458 | } |
469 | catch (Exception e) | 459 | catch (Exception e) |
470 | { | 460 | { |
471 | System.Console.WriteLine(e.ToString()); | 461 | System.Console.WriteLine(e.ToString()); |
472 | return logResponse.CreateDeadRegionResponse(); | 462 | return logResponse.CreateDeadRegionResponse(); |
473 | } | 463 | } |
474 | CommitAgent(ref TheUser); | 464 | CommitAgent(ref userProfile); |
475 | return logResponse.ToXmlRpcResponse(); | 465 | return logResponse.ToXmlRpcResponse(); |
476 | 466 | ||
477 | } | 467 | } |