* Add "reset user password" command to standalone region console

* Grid user server implementation to follow shortly
0.6.0-stable
Justin Clarke Casey 2008-09-15 17:29:11 +00:00
parent bf8b70ebeb
commit 6d289c3ae0
5 changed files with 109 additions and 3 deletions

View File

@ -256,6 +256,18 @@ namespace OpenSim.Framework.Communications
return userProf.ID;
}
}
/// <summary>
/// Reset a user password
/// </summary>
/// <param name="firstName"></param>
/// <param name="lastName"></param>
/// <param name="newPassword"></param>
/// <returns>true if the update was successful, false otherwise</returns>
public bool ResetUserPassword(string firstName, string lastName, string newPassword)
{
return m_userService.ResetUserPassword(firstName, lastName, newPassword);
}
#region Friend Methods

View File

@ -59,7 +59,7 @@ namespace OpenSim.Framework.Communications
UserProfileData SetupMasterUser(UUID userId);
/// <summary>
///
/// Add a new user profile
/// </summary>
/// <param name="user"></param>
UUID AddUserProfile(string firstName, string lastName, string pass, uint regX, uint regY);
@ -71,6 +71,15 @@ namespace OpenSim.Framework.Communications
/// via a call to GetUserProfile().</param>
/// <returns>true if the update could be applied, false if it could not be applied.</returns>
bool UpdateUserProfile(UserProfileData data);
/// <summary>
/// Reset a user password
/// </summary>
/// <param name="firstName"></param>
/// <param name="lastName"></param>
/// <param name="newPassword"></param>
/// <returns>true if the update was successful, false otherwise</returns>
bool ResetUserPassword(string firstName, string lastName, string newPassword);
/// <summary>
/// Adds a new friend to the database for XUser

View File

@ -361,8 +361,6 @@ namespace OpenSim.Framework.Communications
/// <param name="request">The users loginrequest</param>
public void CreateAgent(UserProfileData profile, XmlRpcRequest request)
{
Hashtable requestData = (Hashtable) request.Params[0];
UserAgentData agent = new UserAgentData();
// User connection
@ -574,6 +572,33 @@ namespace OpenSim.Framework.Communications
return user.ID;
}
/// <summary>
/// Reset a user password
/// </summary>
/// <param name="firstName"></param>
/// <param name="lastName"></param>
/// <param name="newPassword"></param>
/// <returns>true if the update was successful, false otherwise</returns>
public bool ResetUserPassword(string firstName, string lastName, string newPassword)
{
string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(newPassword) + ":" + String.Empty);
UserProfileData profile = GetUserProfile(firstName, lastName);
if (null == profile)
{
m_log.ErrorFormat("[USERSTORAGE]: Could not find user {0} {1}", firstName, lastName);
return false;
}
profile.PasswordHash = md5PasswdHash;
profile.PasswordSalt = String.Empty;
UpdateUserProfile(profile);
return true;
}
public bool UpdateUserProfileProperties(UserProfileData UserProfile)
{

View File

@ -283,6 +283,7 @@ namespace OpenSim
{
m_console.Notice("");
m_console.Notice("create user - adds a new user.");
m_console.Notice("reset user password - reset a user's password.");
}
break;
@ -493,6 +494,10 @@ namespace OpenSim
m_commsManager.AddInventoryService(cmdparams[0]);
}
break;
case "reset":
Reset(cmdparams);
break;
default:
string[] tmpPluginArgs = new string[cmdparams.Length + 1];
@ -543,6 +548,30 @@ namespace OpenSim
break;
}
}
/// <summary>
/// Execute switch for some of the reset commands
/// </summary>
/// <param name="args"></param>
protected void Reset(string[] args)
{
if (args.Length == 0)
return;
switch (args[0])
{
case "user":
switch (args[1])
{
case "password":
ResetUserPassword(args);
break;
}
break;
}
}
/// <summary>
/// Turn on some debugging values for OpenSim.
@ -650,6 +679,7 @@ namespace OpenSim
{
m_console.Notice("");
m_console.Notice("create user - adds a new user.");
m_console.Notice("reset user password - reset a user's password.");
}
}
@ -769,6 +799,31 @@ namespace OpenSim
m_log.ErrorFormat("[CONSOLE]: A user with the name {0} {1} already exists!", firstName, lastName);
}
}
/// <summary>
/// Reset a user password.
/// </summary>
/// <param name="cmdparams"></param>
private void ResetUserPassword(string[] cmdparams)
{
string firstName;
string lastName;
string newPassword;
if (cmdparams.Length < 3)
firstName = MainConsole.Instance.CmdPrompt("First name");
else firstName = cmdparams[2];
if ( cmdparams.Length < 4 )
lastName = MainConsole.Instance.CmdPrompt("Last name");
else lastName = cmdparams[3];
if ( cmdparams.Length < 5 )
newPassword = MainConsole.Instance.PasswdPrompt("New password");
else newPassword = cmdparams[4];
m_commsManager.ResetUserPassword(firstName, lastName, newPassword);
}
protected void SaveXml(string[] cmdparams)
{

View File

@ -469,6 +469,11 @@ namespace OpenSim.Region.Communications.OGS1
{
throw new Exception("The method or operation is not implemented.");
}
public bool ResetUserPassword(string firstName, string lastName, string newPassword)
{
throw new Exception("The method or operation is not implemented.");
}
// TODO
public bool UpdateUserProfile(UserProfileData data)