aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs56
-rw-r--r--OpenSim/Region/Application/OpenSimMain.cs5
2 files changed, 59 insertions, 2 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
index fa76078..770abe7 100644
--- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
+++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
@@ -67,6 +67,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
67 m_httpd.AddXmlRPCHandler("admin_broadcast", XmlRpcAlertMethod); 67 m_httpd.AddXmlRPCHandler("admin_broadcast", XmlRpcAlertMethod);
68 m_httpd.AddXmlRPCHandler("admin_restart", XmlRpcRestartMethod); 68 m_httpd.AddXmlRPCHandler("admin_restart", XmlRpcRestartMethod);
69 m_httpd.AddXmlRPCHandler("admin_load_heightmap", XmlRpcLoadHeightmapMethod); 69 m_httpd.AddXmlRPCHandler("admin_load_heightmap", XmlRpcLoadHeightmapMethod);
70 m_httpd.AddXmlRPCHandler("admin_create_user", XmlRpcCreateUserMethod);
70 } 71 }
71 } 72 }
72 catch (NullReferenceException) 73 catch (NullReferenceException)
@@ -281,9 +282,60 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
281 return response; 282 return response;
282 } 283 }
283 284
284 public void Close() 285 public XmlRpcResponse XmlRpcCreateUserMethod(XmlRpcRequest request)
285 { 286 {
287 MainLog.Instance.Verbose("RADMIN", "Received Create User Administrator Request");
288 XmlRpcResponse response = new XmlRpcResponse();
289 Hashtable requestData = (Hashtable) request.Params[0];
290 Hashtable responseData = new Hashtable();
291 if (requiredPassword != System.String.Empty &&
292 (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword))
293 {
294 responseData["created"] = "false";
295 response.Value = responseData;
296 }
297 else
298 {
299 try
300 {
301 string tempfirstname = (string) requestData["user_firstname"];
302 string templastname = (string) requestData["user_lastname"];
303 string tempPasswd = (string) requestData["user_password"];
304 uint regX = Convert.ToUInt32((Int32) requestData["start_region_x"]);
305 uint regY = Convert.ToUInt32((Int32) requestData["start_region_y"]);
306
307 LLUUID tempuserID = m_app.CreateUser(tempfirstname, templastname, tempPasswd, regX, regY);
308
309 if (tempuserID == LLUUID.Zero)
310 {
311 responseData["created"] = "false";
312 responseData["error"] = "Error creating user";
313 responseData["avatar_uuid"] = LLUUID.Zero;
314 response.Value = responseData;
315 MainLog.Instance.Error("RADMIN", "Error creating user (" + tempfirstname + " " + templastname + ") :");
316 }
317 else
318 {
319 responseData["created"] = "true";
320 responseData["avatar_uuid"] = tempuserID;
321 response.Value = responseData;
322 MainLog.Instance.Verbose("RADMIN", "User " + tempfirstname + " " + templastname + " created. Userid " + tempuserID + " assigned.");
323 }
324 }
325 catch (Exception e)
326 {
327 responseData["created"] = "false";
328 responseData["error"] = e.ToString();
329 responseData["avatar_uuid"] = LLUUID.Zero;
330 response.Value = responseData;
331 }
332 }
333
334 return response;
286 } 335 }
287 336
337 public void Close()
338 {
339 }
288 } 340 }
289} \ No newline at end of file 341}
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index a620bd4..f0e60cf 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -436,6 +436,10 @@ namespace OpenSim
436 m_sceneManager.OnRestartSim += handleRestartRegion; 436 m_sceneManager.OnRestartSim += handleRestartRegion;
437 } 437 }
438 438
439 public LLUUID CreateUser(string tempfirstname, string templastname, string tempPasswd, uint regX, uint regY)
440 {
441 return m_commsManager.AddUser(tempfirstname,templastname,tempPasswd,regX,regY);
442 }
439 443
440 public UDPServer CreateRegion(RegionInfo regionInfo) 444 public UDPServer CreateRegion(RegionInfo regionInfo)
441 { 445 {
@@ -678,6 +682,7 @@ namespace OpenSim
678 m_log.Error(" alert [First] [Last] [Message] - send an alert to a user. Case sensitive."); 682 m_log.Error(" alert [First] [Last] [Message] - send an alert to a user. Case sensitive.");
679 m_log.Error(" alert general [Message] - send an alert to all users."); 683 m_log.Error(" alert general [Message] - send an alert to all users.");
680 m_log.Error("backup - trigger a simulator backup"); 684 m_log.Error("backup - trigger a simulator backup");
685 m_log.Error("create user - adds a new user");
681 m_log.Error("change-region [name] - sets the region that many of these commands affect."); 686 m_log.Error("change-region [name] - sets the region that many of these commands affect.");
682 m_log.Error("command-script [filename] - Execute command in a file."); 687 m_log.Error("command-script [filename] - Execute command in a file.");
683 m_log.Error("debug - debugging commands"); 688 m_log.Error("debug - debugging commands");