aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/UserServer
diff options
context:
space:
mode:
authorMelanie Thielker2008-10-01 15:17:37 +0000
committerMelanie Thielker2008-10-01 15:17:37 +0000
commitfecbb2febd04ec1ad26d0a38930c61cad372b6c6 (patch)
tree5d41cc81fa38a7c224504005fc3e9fcbb0596f44 /OpenSim/Grid/UserServer
parenta little (incomplete) hackery in the IRC module to allow run-time connection ... (diff)
downloadopensim-SC-fecbb2febd04ec1ad26d0a38930c61cad372b6c6.zip
opensim-SC-fecbb2febd04ec1ad26d0a38930c61cad372b6c6.tar.gz
opensim-SC-fecbb2febd04ec1ad26d0a38930c61cad372b6c6.tar.bz2
opensim-SC-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 'OpenSim/Grid/UserServer')
-rw-r--r--OpenSim/Grid/UserServer/Main.cs1
-rw-r--r--OpenSim/Grid/UserServer/UserLoginService.cs43
2 files changed, 44 insertions, 0 deletions
diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs
index 55e681a..7fb664f 100644
--- a/OpenSim/Grid/UserServer/Main.cs
+++ b/OpenSim/Grid/UserServer/Main.cs
@@ -146,6 +146,7 @@ namespace OpenSim.Grid.UserServer
146 m_httpServer.AddXmlRPCHandler("logout_of_simulator", m_userManager.XmlRPCLogOffUserMethodUUID); 146 m_httpServer.AddXmlRPCHandler("logout_of_simulator", m_userManager.XmlRPCLogOffUserMethodUUID);
147 m_httpServer.AddXmlRPCHandler("get_agent_by_uuid", m_userManager.XmlRPCGetAgentMethodUUID); 147 m_httpServer.AddXmlRPCHandler("get_agent_by_uuid", m_userManager.XmlRPCGetAgentMethodUUID);
148 m_httpServer.AddXmlRPCHandler("check_auth_session", m_userManager.XmlRPCCheckAuthSession); 148 m_httpServer.AddXmlRPCHandler("check_auth_session", m_userManager.XmlRPCCheckAuthSession);
149 m_httpServer.AddXmlRPCHandler("set_login_params", m_loginService.XmlRPCSetLoginParams);
149 // Message Server ---> User Server 150 // Message Server ---> User Server
150 m_httpServer.AddXmlRPCHandler("register_messageserver", m_messagesService.XmlRPCRegisterMessageServer); 151 m_httpServer.AddXmlRPCHandler("register_messageserver", m_messagesService.XmlRPCRegisterMessageServer);
151 m_httpServer.AddXmlRPCHandler("agent_change_region", m_messagesService.XmlRPCUserMovedtoRegion); 152 m_httpServer.AddXmlRPCHandler("agent_change_region", m_messagesService.XmlRPCUserMovedtoRegion);
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}