Mantis#2660. Thank you kindly, Ruud Lathrop for a patch that:

This patch adds the option of adding the email when you create 
a new user. This works in Gridmode as none Gridmode. This 
option is also added to RemoteAdminPlugin. With a new handler 
you can create a user with a email.
0.6.1-post-fixes
Charles Krinke 2008-11-23 03:38:40 +00:00
parent 0460c19bcd
commit 02fd7751d9
11 changed files with 285 additions and 91 deletions

View File

@ -93,6 +93,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
m_httpd.AddXmlRPCHandler("admin_restart", XmlRpcRestartMethod, false); m_httpd.AddXmlRPCHandler("admin_restart", XmlRpcRestartMethod, false);
m_httpd.AddXmlRPCHandler("admin_load_heightmap", XmlRpcLoadHeightmapMethod, false); m_httpd.AddXmlRPCHandler("admin_load_heightmap", XmlRpcLoadHeightmapMethod, false);
m_httpd.AddXmlRPCHandler("admin_create_user", XmlRpcCreateUserMethod, false); m_httpd.AddXmlRPCHandler("admin_create_user", XmlRpcCreateUserMethod, false);
//This handler creates a user with a email,
m_httpd.AddXmlRPCHandler("admin_create_user_email", XmlRpcCreateUserMethodEmail, false);
m_httpd.AddXmlRPCHandler("admin_exists_user", XmlRpcUserExistsMethod, false); m_httpd.AddXmlRPCHandler("admin_exists_user", XmlRpcUserExistsMethod, false);
m_httpd.AddXmlRPCHandler("admin_update_user", XmlRpcUpdateUserAccountMethod, false); m_httpd.AddXmlRPCHandler("admin_update_user", XmlRpcUpdateUserAccountMethod, false);
m_httpd.AddXmlRPCHandler("admin_load_xml", XmlRpcLoadXMLMethod, false); m_httpd.AddXmlRPCHandler("admin_load_xml", XmlRpcLoadXMLMethod, false);
@ -472,7 +474,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{ {
m_log.InfoFormat("master avatar does not exist, creating it"); m_log.InfoFormat("master avatar does not exist, creating it");
// ...or create new user // ...or create new user
userID = m_app.CreateUser(masterFirst, masterLast, masterPassword, region.RegionLocX, region.RegionLocY); userID = m_app.CreateUser(masterFirst, masterLast, masterPassword, "", region.RegionLocX, region.RegionLocY);
if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}", if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}",
masterFirst, masterLast)); masterFirst, masterLast));
} }
@ -647,7 +649,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
// check completeness // check completeness
checkStringParameters(request, new string[] { "password", "user_firstname", checkStringParameters(request, new string[] { "password", "user_firstname",
"user_lastname", "user_password" }); "user_lastname", "user_password", });
checkIntegerParams(request, new string[] { "start_region_x", "start_region_y" }); checkIntegerParams(request, new string[] { "start_region_x", "start_region_y" });
// check password // check password
@ -658,6 +660,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
string firstname = (string) requestData["user_firstname"]; string firstname = (string) requestData["user_firstname"];
string lastname = (string) requestData["user_lastname"]; string lastname = (string) requestData["user_lastname"];
string passwd = (string) requestData["user_password"]; string passwd = (string) requestData["user_password"];
string email = ""; //Empty string for email
uint regX = Convert.ToUInt32((Int32)requestData["start_region_x"]); uint regX = Convert.ToUInt32((Int32)requestData["start_region_x"]);
uint regY = Convert.ToUInt32((Int32)requestData["start_region_y"]); uint regY = Convert.ToUInt32((Int32)requestData["start_region_y"]);
@ -665,7 +668,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (null != userProfile) if (null != userProfile)
throw new Exception(String.Format("avatar {0} {1} already exists", firstname, lastname)); throw new Exception(String.Format("avatar {0} {1} already exists", firstname, lastname));
UUID userID = m_app.CreateUser(firstname, lastname, passwd, regX, regY); UUID userID = m_app.CreateUser(firstname, lastname, passwd, email, regX, regY);
if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}", if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}",
firstname, lastname)); firstname, lastname));
@ -692,6 +695,101 @@ namespace OpenSim.ApplicationPlugins.RemoteController
return response; return response;
} }
/// <summary>
/// Create a new user account.
/// <summary>
/// <param name="request">incoming XML RPC request</param>
/// <remarks>
/// XmlRpcCreateUserMethod takes the following XMLRPC
/// parameters
/// <list type="table">
/// <listheader><term>parameter name</term><description>description</description></listheader>
/// <item><term>password</term>
/// <description>admin password as set in OpenSim.ini</description></item>
/// <item><term>user_firstname</term>
/// <description>avatar's first name</description></item>
/// <item><term>user_lastname</term>
/// <description>avatar's last name</description></item>
/// <item><term>user_password</term>
/// <description>avatar's password</description></item>
/// <item><term>start_region_x</term>
/// <description>avatar's start region coordinates, X value</description></item>
/// <item><term>start_region_y</term>
/// <description>avatar's start region coordinates, Y value</description></item>
/// <item><term>user_email</term>
/// <description>email of avatar</description></item>
/// </list>
///
/// XmlRpcCreateUserMethod returns
/// <list type="table">
/// <listheader><term>name</term><description>description</description></listheader>
/// <item><term>success</term>
/// <description>true or false</description></item>
/// <item><term>error</term>
/// <description>error message if success is false</description></item>
/// <item><term>avatar_uuid</term>
/// <description>UUID of the newly created avatar
/// account; UUID.Zero if failed.
/// </description></item>
/// </list>
/// </remarks>
public XmlRpcResponse XmlRpcCreateUserMethodEmail(XmlRpcRequest request)
{
m_log.Info("[RADMIN]: CreateUser: new request");
XmlRpcResponse response = new XmlRpcResponse();
Hashtable responseData = new Hashtable();
try
{
Hashtable requestData = (Hashtable)request.Params[0];
// check completeness
checkStringParameters(request, new string[] { "password", "user_firstname",
"user_lastname", "user_password", "user_email" });
checkIntegerParams(request, new string[] { "start_region_x", "start_region_y" });
// check password
if (!String.IsNullOrEmpty(requiredPassword) &&
(string)requestData["password"] != requiredPassword) throw new Exception("wrong password");
// do the job
string firstname = (string)requestData["user_firstname"];
string lastname = (string)requestData["user_lastname"];
string passwd = (string)requestData["user_password"];
string email = (string)requestData["user_email"];
uint regX = Convert.ToUInt32((Int32)requestData["start_region_x"]);
uint regY = Convert.ToUInt32((Int32)requestData["start_region_y"]);
UserProfileData userProfile = m_app.CommunicationsManager.UserService.GetUserProfile(firstname, lastname);
if (null != userProfile)
throw new Exception(String.Format("avatar {0} {1} already exists", firstname, lastname));
UUID userID = m_app.CreateUser(firstname, lastname, passwd, email, regX, regY);
if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}",
firstname, lastname));
responseData["success"] = "true";
responseData["avatar_uuid"] = userID.ToString();
response.Value = responseData;
m_log.InfoFormat("[RADMIN]: CreateUser: User {0} {1} created, UUID {2}", firstname, lastname, userID);
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN] CreateUser: failed: {0}", e.Message);
m_log.DebugFormat("[RADMIN] CreateUser: failed: {0}", e.ToString());
responseData["success"] = "false";
responseData["avatar_uuid"] = UUID.Zero.ToString();
responseData["error"] = e.Message;
response.Value = responseData;
}
return response;
}
/// <summary> /// <summary>
/// Check whether a certain user account exists. /// Check whether a certain user account exists.

View File

@ -255,14 +255,15 @@ namespace OpenSim.Framework.Communications
/// <param name="firstName"></param> /// <param name="firstName"></param>
/// <param name="lastName"></param> /// <param name="lastName"></param>
/// <param name="password"></param> /// <param name="password"></param>
/// <param name="email"></param>
/// <param name="regX"></param> /// <param name="regX"></param>
/// <param name="regY"></param> /// <param name="regY"></param>
/// <returns>The UUID of the added user. Returns UUID.Zero if the add was unsuccessful</returns> /// <returns>The UUID of the added user. Returns UUID.Zero if the add was unsuccessful</returns>
public UUID AddUser(string firstName, string lastName, string password, uint regX, uint regY) public UUID AddUser(string firstName, string lastName, string password, string email, uint regX, uint regY)
{ {
string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty); string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty);
m_userServiceAdmin.AddUserProfile(firstName, lastName, md5PasswdHash, regX, regY); m_userServiceAdmin.AddUserProfile(firstName, lastName, md5PasswdHash, email, regX, regY);
UserProfileData userProf = UserService.GetUserProfile(firstName, lastName); UserProfileData userProf = UserService.GetUserProfile(firstName, lastName);
if (userProf == null) if (userProf == null)
{ {
@ -276,11 +277,22 @@ namespace OpenSim.Framework.Communications
} }
} }
public UUID AddUser(string firstName, string lastName, string password, uint regX, uint regY, UUID SetUUID) /// <summary>
/// Adds the user.
/// </summary>
/// <param name="firstName">The first name.</param>
/// <param name="lastName">The last name.</param>
/// <param name="password">The password.</param>
/// <param name="email">The email.</param>
/// <param name="regX">The reg X.</param>
/// <param name="regY">The reg Y.</param>
/// <param name="SetUUID">The set UUID.</param>
/// <returns></returns>
public UUID AddUser(string firstName, string lastName, string password, string email, uint regX, uint regY, UUID SetUUID)
{ {
string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty); string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty);
m_userServiceAdmin.AddUserProfile(firstName, lastName, md5PasswdHash, regX, regY, SetUUID); m_userServiceAdmin.AddUserProfile(firstName, lastName, md5PasswdHash, email, regX, regY, SetUUID);
UserProfileData userProf = UserService.GetUserProfile(firstName, lastName); UserProfileData userProf = UserService.GetUserProfile(firstName, lastName);
if (userProf == null) if (userProf == null)
{ {

View File

@ -35,15 +35,15 @@ namespace OpenSim.Framework.Communications
/// <summary> /// <summary>
/// Loads a user profile by name /// Loads a user profile by name
/// </summary> /// </summary>
/// <param name="fname">First name</param> /// <param name="firstName">First name</param>
/// <param name="lname">Last name</param> /// <param name="lastName">Last name</param>
/// <returns>A user profile. Returns null if no profile is found</returns> /// <returns>A user profile. Returns null if no profile is found</returns>
UserProfileData GetUserProfile(string firstName, string lastName); UserProfileData GetUserProfile(string firstName, string lastName);
/// <summary> /// <summary>
/// Loads a user profile from a database by UUID /// Loads a user profile from a database by UUID
/// </summary> /// </summary>
/// <param name="uuid">The target UUID</param> /// <param name="userId">The target UUID</param>
/// <returns>A user profile. Returns null if no user profile is found.</returns> /// <returns>A user profile. Returns null if no user profile is found.</returns>
UserProfileData GetUserProfile(UUID userId); UserProfileData GetUserProfile(UUID userId);
@ -90,8 +90,8 @@ namespace OpenSim.Framework.Communications
/// <summary> /// <summary>
/// Logs off a user on the user server /// Logs off a user on the user server
/// </summary> /// </summary>
/// <param name="UserID">UUID of the user</param> /// <param name="userid">UUID of the user</param>
/// <param name="regionID">UUID of the Region</param> /// <param name="regionid">UUID of the Region</param>
/// <param name="regionhandle">regionhandle</param> /// <param name="regionhandle">regionhandle</param>
/// <param name="position">final position</param> /// <param name="position">final position</param>
/// <param name="lookat">final lookat</param> /// <param name="lookat">final lookat</param>
@ -100,8 +100,8 @@ namespace OpenSim.Framework.Communications
/// <summary> /// <summary>
/// Logs off a user on the user server (deprecated as of 2008-08-27) /// Logs off a user on the user server (deprecated as of 2008-08-27)
/// </summary> /// </summary>
/// <param name="UserID">UUID of the user</param> /// <param name="userid">UUID of the user</param>
/// <param name="regionID">UUID of the Region</param> /// <param name="regionid">UUID of the Region</param>
/// <param name="regionhandle">regionhandle</param> /// <param name="regionhandle">regionhandle</param>
/// <param name="posx">final position x</param> /// <param name="posx">final position x</param>
/// <param name="posy">final position y</param> /// <param name="posy">final position y</param>
@ -118,7 +118,8 @@ namespace OpenSim.Framework.Communications
/// Updates the current region the User is in /// Updates the current region the User is in
/// </summary> /// </summary>
/// <param name="avatarid">User Region the Avatar is IN</param> /// <param name="avatarid">User Region the Avatar is IN</param>
/// <param name="retionuuid">User Region the Avatar is IN</param> /// <param name="regionuuid">User Region the Avatar is IN</param>
/// <param name="regionhandle">User region handle</param>
void UpdateUserCurrentRegion(UUID avatarid, UUID regionuuid, ulong regionhandle); void UpdateUserCurrentRegion(UUID avatarid, UUID regionuuid, ulong regionhandle);
/// <summary> /// <summary>

View File

@ -34,11 +34,27 @@ namespace OpenSim.Framework.Communications
/// <summary> /// <summary>
/// Add a new user profile /// Add a new user profile
/// </summary> /// </summary>
/// <param name="user"></param> /// <param name="firstName">The first name.</param>
UUID AddUserProfile(string firstName, string lastName, string pass, uint regX, uint regY); /// <param name="lastName">The last name.</param>
/// <param name="pass">password of avatar</param>
/// <param name="email">email of user</param>
/// <param name="regX">region X.</param>
/// <param name="regY">region Y.</param>
/// <returns></returns>
UUID AddUserProfile(string firstName, string lastName, string pass, string email, uint regX, uint regY);
// Adds one for allowing setting of the UUID from modules.. SHOULD ONLY BE USED in very special circumstances! /// <summary>
UUID AddUserProfile(string firstName, string lastName, string pass, uint regX, uint regY, UUID setUUID); /// Adds one for allowing setting of the UUID from modules.. SHOULD ONLY BE USED in very special circumstances!
/// </summary>
/// <param name="firstName">The first name.</param>
/// <param name="lastName">The last name.</param>
/// <param name="pass">password of avatar</param>
/// <param name="email">email of user</param>
/// <param name="regX">region X.</param>
/// <param name="regY">region Y.</param>
/// <param name="setUUID">The set UUID.</param>
/// <returns></returns>
UUID AddUserProfile(string firstName, string lastName, string pass, string email, uint regX, uint regY, UUID setUUID);
/// <summary> /// <summary>
/// Reset a user password /// Reset a user password

View File

@ -54,6 +54,7 @@ namespace OpenSim.Framework.Communications
/// Adds a new user server plugin - user servers will be requested in the order they were loaded. /// Adds a new user server plugin - user servers will be requested in the order they were loaded.
/// </summary> /// </summary>
/// <param name="provider">The filename to the user server plugin DLL</param> /// <param name="provider">The filename to the user server plugin DLL</param>
/// <param name="connect"></param>
public void AddPlugin(string provider, string connect) public void AddPlugin(string provider, string connect)
{ {
PluginLoader<IUserDataPlugin> loader = PluginLoader<IUserDataPlugin> loader =
@ -580,15 +581,32 @@ namespace OpenSim.Framework.Communications
#endregion #endregion
/// <summary> /// <summary>
/// /// Add a new user profile
/// </summary> /// </summary>
/// <param name="user"></param> /// <param name="firstName">first name.</param>
public UUID AddUserProfile(string firstName, string lastName, string pass, uint regX, uint regY) /// <param name="lastName">last name.</param>
/// <param name="pass">password</param>
/// <param name="email">email.</param>
/// <param name="regX">location X.</param>
/// <param name="regY">location Y.</param>
/// <returns></returns>
public UUID AddUserProfile(string firstName, string lastName, string pass, string email, uint regX, uint regY)
{ {
return AddUserProfile(firstName, lastName, pass, regX, regY, UUID.Random()); return AddUserProfile(firstName, lastName, pass, email, regX, regY, UUID.Random());
} }
public UUID AddUserProfile(string firstName, string lastName, string pass, uint regX, uint regY, UUID SetUUID) /// <summary>
/// Adds the user profile.
/// </summary>
/// <param name="firstName">first name.</param>
/// <param name="lastName">last name.</param>
/// <param name="pass">password</param>
/// <param name="email">email.</param>
/// <param name="regX">location X.</param>
/// <param name="regY">location Y.</param>
/// <param name="SetUUID">UUID of avatar.</param>
/// <returns></returns>
public UUID AddUserProfile(string firstName, string lastName, string pass, string email, uint regX, uint regY, UUID SetUUID)
{ {
UserProfileData user = new UserProfileData(); UserProfileData user = new UserProfileData();
user.HomeLocation = new Vector3(128, 128, 100); user.HomeLocation = new Vector3(128, 128, 100);
@ -601,6 +619,7 @@ namespace OpenSim.Framework.Communications
user.HomeLookAt = new Vector3(100, 100, 100); user.HomeLookAt = new Vector3(100, 100, 100);
user.HomeRegionX = regX; user.HomeRegionX = regX;
user.HomeRegionY = regY; user.HomeRegionY = regY;
user.Email = email;
foreach (IUserDataPlugin plugin in _plugins) foreach (IUserDataPlugin plugin in _plugins)
{ {

View File

@ -162,62 +162,12 @@ namespace OpenSim.Grid.UserServer
m_httpServer.AddXmlRPCHandler("update_user_profile", m_userManager.XmlRpcResponseXmlRPCUpdateUserProfile); m_httpServer.AddXmlRPCHandler("update_user_profile", m_userManager.XmlRpcResponseXmlRPCUpdateUserProfile);
} }
public void do_create(string what) public void do_create(string[] args)
{ {
switch (what) switch (args[0])
{ {
case "user": case "user":
string tempfirstname = m_console.CmdPrompt("First name"); CreateUser(args);
string templastname = m_console.CmdPrompt("Last name");
//tempMD5Passwd = m_console.PasswdPrompt("Password");
string tempMD5Passwd = m_console.CmdPrompt("Password");
uint regX = Convert.ToUInt32(m_console.CmdPrompt("Start Region X"));
uint regY = Convert.ToUInt32(m_console.CmdPrompt("Start Region Y"));
if (null != m_userManager.GetUserProfile(tempfirstname, templastname))
{
m_log.ErrorFormat(
"[USERS]: A user with the name {0} {1} already exists!", tempfirstname, templastname);
break;
}
tempMD5Passwd = Util.Md5Hash(Util.Md5Hash(tempMD5Passwd) + ":" + String.Empty);
UUID userID = new UUID();
try
{
userID = m_userManager.AddUserProfile(tempfirstname, templastname, tempMD5Passwd, regX, regY);
}
catch (Exception ex)
{
m_log.ErrorFormat("[USERS]: Error creating user: {0}", ex.ToString());
}
try
{
if (!m_interServiceInventoryService.CreateNewUserInventory(userID))
{
throw new Exception(
String.Format(
"The inventory creation request for user {0} did not succeed."
+ " Please contact your inventory service provider for more information.",
userID));
}
}
catch (WebException)
{
m_log.ErrorFormat(
"[USERS]: Could not contact the inventory service at {0} to create an inventory for {1}",
Cfg.InventoryUrl + "CreateInventory/", userID);
}
catch (Exception e)
{
m_log.ErrorFormat("[USERS]: Error creating inventory for user: {0}", e);
}
m_lastCreatedUser = userID;
break; break;
} }
} }
@ -246,6 +196,85 @@ namespace OpenSim.Grid.UserServer
} }
} }
/// <summary>
/// Create a new user
/// </summary>
/// <param name="cmdparams">string array with parameters: firstname, lastname, password, locationX, locationY, email</param>
protected void CreateUser(string[] cmdparams)
{
string firstName;
string lastName;
string password;
string email;
uint regX = 1000;
uint regY = 1000;
if (cmdparams.Length < 2)
firstName = MainConsole.Instance.CmdPrompt("First name", "Default");
else firstName = cmdparams[1];
if (cmdparams.Length < 3)
lastName = MainConsole.Instance.CmdPrompt("Last name", "User");
else lastName = cmdparams[2];
if (cmdparams.Length < 4)
password = MainConsole.Instance.PasswdPrompt("Password");
else password = cmdparams[3];
if (cmdparams.Length < 5)
regX = Convert.ToUInt32(MainConsole.Instance.CmdPrompt("Start Region X", regX.ToString()));
else regX = Convert.ToUInt32(cmdparams[4]);
if (cmdparams.Length < 6)
regY = Convert.ToUInt32(MainConsole.Instance.CmdPrompt("Start Region Y", regY.ToString()));
else regY = Convert.ToUInt32(cmdparams[5]);
if (cmdparams.Length < 7)
email = MainConsole.Instance.CmdPrompt("Email", "");
else email = cmdparams[6];
if (null == m_userManager.GetUserProfile(firstName, lastName))
{
password = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty);
UUID userID = new UUID();
try
{
userID = m_userManager.AddUserProfile(firstName, lastName, password, email, regX, regY);
}
catch (Exception ex)
{
m_log.ErrorFormat("[USERS]: Error creating user: {0}", ex.ToString());
}
try
{
if (!m_interServiceInventoryService.CreateNewUserInventory(userID))
{
throw new Exception(
String.Format("The inventory creation request for user {0} did not succeed."
+ " Please contact your inventory service provider for more information.", userID));
}
}
catch (WebException)
{
m_log.ErrorFormat("[USERS]: Could not contact the inventory service at {0} to create an inventory for {1}",
Cfg.InventoryUrl + "CreateInventory/", userID);
}
catch (Exception e)
{
m_log.ErrorFormat("[USERS]: Error creating inventory for user: {0}", e);
}
m_lastCreatedUser = userID;
}
else
{
m_log.ErrorFormat("[USERS]: A user with the name {0} {1} already exists!", firstName, lastName);
}
}
/// <summary> /// <summary>
/// Reset a user password. /// Reset a user password.
/// </summary> /// </summary>
@ -277,7 +306,7 @@ namespace OpenSim.Grid.UserServer
switch (cmd) switch (cmd)
{ {
case "create": case "create":
do_create(cmdparams[0]); do_create(cmdparams);
break; break;
case "reset": case "reset":

View File

@ -516,7 +516,14 @@ namespace OpenSim
switch (args[0]) switch (args[0])
{ {
case "user": case "user":
CreateUser(args); if (ConfigurationSettings.Standalone)
{
CreateUser(args);
}
else
{
m_console.Notice("Create user is not available in grid mode, use the user-server.");
}
break; break;
} }
} }
@ -537,7 +544,14 @@ namespace OpenSim
switch (args[1]) switch (args[1])
{ {
case "password": case "password":
ResetUserPassword(args); if (ConfigurationSettings.Standalone)
{
ResetUserPassword(args);
}
else
{
m_console.Notice("Reset user password is not available in grid mode, use the user-server.");
}
break; break;
} }
@ -734,12 +748,13 @@ namespace OpenSim
/// <summary> /// <summary>
/// Create a new user /// Create a new user
/// </summary> /// </summary>
/// <param name="cmdparams"></param> /// <param name="cmdparams">string array with parameters: firstname, lastname, password, locationX, locationY, email</param>
protected void CreateUser(string[] cmdparams) protected void CreateUser(string[] cmdparams)
{ {
string firstName; string firstName;
string lastName; string lastName;
string password; string password;
string email;
uint regX = 1000; uint regX = 1000;
uint regY = 1000; uint regY = 1000;
@ -751,7 +766,7 @@ namespace OpenSim
lastName = MainConsole.Instance.CmdPrompt("Last name", "User"); lastName = MainConsole.Instance.CmdPrompt("Last name", "User");
else lastName = cmdparams[2]; else lastName = cmdparams[2];
if ( cmdparams.Length < 4 ) if (cmdparams.Length < 4)
password = MainConsole.Instance.PasswdPrompt("Password"); password = MainConsole.Instance.PasswdPrompt("Password");
else password = cmdparams[3]; else password = cmdparams[3];
@ -763,9 +778,13 @@ namespace OpenSim
regY = Convert.ToUInt32(MainConsole.Instance.CmdPrompt("Start Region Y", regY.ToString())); regY = Convert.ToUInt32(MainConsole.Instance.CmdPrompt("Start Region Y", regY.ToString()));
else regY = Convert.ToUInt32(cmdparams[5]); else regY = Convert.ToUInt32(cmdparams[5]);
if (cmdparams.Length < 7)
email = MainConsole.Instance.CmdPrompt("Email", "");
else email = cmdparams[6];
if (null == m_commsManager.UserService.GetUserProfile(firstName, lastName)) if (null == m_commsManager.UserService.GetUserProfile(firstName, lastName))
{ {
CreateUser(firstName, lastName, password, regX, regY); CreateUser(firstName, lastName, password, email, regX, regY);
} }
else else
{ {

View File

@ -298,9 +298,9 @@ namespace OpenSim
m_assetCache = new AssetCache(assetServer); m_assetCache = new AssetCache(assetServer);
} }
public UUID CreateUser(string tempfirstname, string templastname, string tempPasswd, uint regX, uint regY) public UUID CreateUser(string tempfirstname, string templastname, string tempPasswd, string email, uint regX, uint regY)
{ {
return m_commsManager.AddUser(tempfirstname, templastname, tempPasswd, regX, regY); return m_commsManager.AddUser(tempfirstname, templastname, tempPasswd, email, regX, regY);
} }
/// <summary> /// <summary>

View File

@ -94,7 +94,7 @@ namespace OpenSim.Region.Communications.Local
//no current user account so make one //no current user account so make one
m_log.Info("[LOGIN]: No user account found so creating a new one."); m_log.Info("[LOGIN]: No user account found so creating a new one.");
m_userManager.AddUserProfile(firstname, lastname, "test", defaultHomeX, defaultHomeY); m_userManager.AddUserProfile(firstname, lastname, "test", "", defaultHomeX, defaultHomeY);
profile = m_userManager.GetUserProfile(firstname, lastname); profile = m_userManager.GetUserProfile(firstname, lastname);
if (profile != null) if (profile != null)

View File

@ -72,7 +72,7 @@ namespace OpenSim.Region.Communications.Local
} }
Console.WriteLine("Unknown Master User. Sandbox Mode: Creating Account"); Console.WriteLine("Unknown Master User. Sandbox Mode: Creating Account");
AddUserProfile(firstName, lastName, password, m_defaultHomeX, m_defaultHomeY); AddUserProfile(firstName, lastName, password, "", m_defaultHomeX, m_defaultHomeY);
profile = GetUserProfile(firstName, lastName); profile = GetUserProfile(firstName, lastName);

View File

@ -530,7 +530,7 @@ namespace OpenSim.Region.Environment.Modules.InterGrid
// get seed capagentData.firstname = FirstName;agentData.lastname = LastName; // get seed capagentData.firstname = FirstName;agentData.lastname = LastName;
if (homeScene.CommsManager.UserService.GetUserProfile(agentData.AgentID) == null && !GridMode) if (homeScene.CommsManager.UserService.GetUserProfile(agentData.AgentID) == null && !GridMode)
{ {
homeScene.CommsManager.AddUser(agentData.firstname, agentData.lastname, CreateRandomStr(7), homeScene.RegionInfo.RegionLocX, homeScene.RegionInfo.RegionLocY, agentData.AgentID); homeScene.CommsManager.AddUser(agentData.firstname, agentData.lastname, CreateRandomStr(7), "", homeScene.RegionInfo.RegionLocX, homeScene.RegionInfo.RegionLocY, agentData.AgentID);
UserProfileData userProfile2 = homeScene.CommsManager.UserService.GetUserProfile(agentData.AgentID); UserProfileData userProfile2 = homeScene.CommsManager.UserService.GetUserProfile(agentData.AgentID);
if (userProfile2 != null) if (userProfile2 != null)
{ {