diff options
author | Melanie Thielker | 2008-10-01 15:17:37 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-10-01 15:17:37 +0000 |
commit | fecbb2febd04ec1ad26d0a38930c61cad372b6c6 (patch) | |
tree | 5d41cc81fa38a7c224504005fc3e9fcbb0596f44 /OpenSim/Grid/UserServer/UserLoginService.cs | |
parent | a little (incomplete) hackery in the IRC module to allow run-time connection ... (diff) | |
download | opensim-SC_OLD-fecbb2febd04ec1ad26d0a38930c61cad372b6c6.zip opensim-SC_OLD-fecbb2febd04ec1ad26d0a38930c61cad372b6c6.tar.gz opensim-SC_OLD-fecbb2febd04ec1ad26d0a38930c61cad372b6c6.tar.bz2 opensim-SC_OLD-fecbb2febd04ec1ad26d0a38930c61cad372b6c6.tar.xz |
Add a user server XMLRPC method to set the MOTD and the minimum GodLevel
required to log in. set_login_params accepts avatar_uuid and password of a
user with god level 200 or more, and allows setting either or both the
login_motd or login_level
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Grid/UserServer/UserLoginService.cs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs index 573e546..bfa454c 100644 --- a/OpenSim/Grid/UserServer/UserLoginService.cs +++ b/OpenSim/Grid/UserServer/UserLoginService.cs | |||
@@ -437,5 +437,48 @@ namespace OpenSim.Grid.UserServer | |||
437 | "A root inventory folder for user {0} could not be retrieved from the inventory service", | 437 | "A root inventory folder for user {0} could not be retrieved from the inventory service", |
438 | userID)); | 438 | userID)); |
439 | } | 439 | } |
440 | |||
441 | public XmlRpcResponse XmlRPCSetLoginParams(XmlRpcRequest request) | ||
442 | { | ||
443 | XmlRpcResponse response = new XmlRpcResponse(); | ||
444 | Hashtable requestData = (Hashtable) request.Params[0]; | ||
445 | UserProfileData userProfile; | ||
446 | Hashtable responseData = new Hashtable(); | ||
447 | |||
448 | UUID uid; | ||
449 | string pass = requestData["password"].ToString(); | ||
450 | |||
451 | if(!UUID.TryParse((string) requestData["avatar_uuid"], out uid)) | ||
452 | { | ||
453 | responseData["error"] = "No authorization"; | ||
454 | response.Value = responseData; | ||
455 | return response; | ||
456 | } | ||
457 | |||
458 | userProfile = m_userManager.GetUserProfile(uid); | ||
459 | |||
460 | if (userProfile == null || | ||
461 | (!AuthenticateUser(userProfile, pass)) || | ||
462 | userProfile.GodLevel < 200) | ||
463 | { | ||
464 | responseData["error"] = "No authorization"; | ||
465 | response.Value = responseData; | ||
466 | return response; | ||
467 | } | ||
468 | |||
469 | if (requestData.ContainsKey("login_level")) | ||
470 | { | ||
471 | m_minLoginLevel = Convert.ToInt32(requestData["login_level"]); | ||
472 | } | ||
473 | |||
474 | if (requestData.ContainsKey("login_motd")) | ||
475 | { | ||
476 | m_welcomeMessage = requestData["login_motd"].ToString(); | ||
477 | } | ||
478 | |||
479 | response.Value = responseData; | ||
480 | return response; | ||
481 | } | ||
482 | |||
440 | } | 483 | } |
441 | } | 484 | } |