diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Framework/Communications/CommunicationsManager.cs | 12 | ||||
-rw-r--r-- | OpenSim/Framework/Communications/IUserService.cs | 11 | ||||
-rw-r--r-- | OpenSim/Framework/Communications/UserManagerBase.cs | 29 | ||||
-rw-r--r-- | OpenSim/Region/Application/OpenSim.cs | 55 | ||||
-rw-r--r-- | OpenSim/Region/Communications/OGS1/OGS1UserServices.cs | 5 |
5 files changed, 109 insertions, 3 deletions
diff --git a/OpenSim/Framework/Communications/CommunicationsManager.cs b/OpenSim/Framework/Communications/CommunicationsManager.cs index 969bdd8..1ac5fe4 100644 --- a/OpenSim/Framework/Communications/CommunicationsManager.cs +++ b/OpenSim/Framework/Communications/CommunicationsManager.cs | |||
@@ -256,6 +256,18 @@ namespace OpenSim.Framework.Communications | |||
256 | return userProf.ID; | 256 | return userProf.ID; |
257 | } | 257 | } |
258 | } | 258 | } |
259 | |||
260 | /// <summary> | ||
261 | /// Reset a user password | ||
262 | /// </summary> | ||
263 | /// <param name="firstName"></param> | ||
264 | /// <param name="lastName"></param> | ||
265 | /// <param name="newPassword"></param> | ||
266 | /// <returns>true if the update was successful, false otherwise</returns> | ||
267 | public bool ResetUserPassword(string firstName, string lastName, string newPassword) | ||
268 | { | ||
269 | return m_userService.ResetUserPassword(firstName, lastName, newPassword); | ||
270 | } | ||
259 | 271 | ||
260 | #region Friend Methods | 272 | #region Friend Methods |
261 | 273 | ||
diff --git a/OpenSim/Framework/Communications/IUserService.cs b/OpenSim/Framework/Communications/IUserService.cs index 7e3c77b..d52d1ea 100644 --- a/OpenSim/Framework/Communications/IUserService.cs +++ b/OpenSim/Framework/Communications/IUserService.cs | |||
@@ -59,7 +59,7 @@ namespace OpenSim.Framework.Communications | |||
59 | UserProfileData SetupMasterUser(UUID userId); | 59 | UserProfileData SetupMasterUser(UUID userId); |
60 | 60 | ||
61 | /// <summary> | 61 | /// <summary> |
62 | /// | 62 | /// Add a new user profile |
63 | /// </summary> | 63 | /// </summary> |
64 | /// <param name="user"></param> | 64 | /// <param name="user"></param> |
65 | UUID AddUserProfile(string firstName, string lastName, string pass, uint regX, uint regY); | 65 | UUID AddUserProfile(string firstName, string lastName, string pass, uint regX, uint regY); |
@@ -71,6 +71,15 @@ namespace OpenSim.Framework.Communications | |||
71 | /// via a call to GetUserProfile().</param> | 71 | /// via a call to GetUserProfile().</param> |
72 | /// <returns>true if the update could be applied, false if it could not be applied.</returns> | 72 | /// <returns>true if the update could be applied, false if it could not be applied.</returns> |
73 | bool UpdateUserProfile(UserProfileData data); | 73 | bool UpdateUserProfile(UserProfileData data); |
74 | |||
75 | /// <summary> | ||
76 | /// Reset a user password | ||
77 | /// </summary> | ||
78 | /// <param name="firstName"></param> | ||
79 | /// <param name="lastName"></param> | ||
80 | /// <param name="newPassword"></param> | ||
81 | /// <returns>true if the update was successful, false otherwise</returns> | ||
82 | bool ResetUserPassword(string firstName, string lastName, string newPassword); | ||
74 | 83 | ||
75 | /// <summary> | 84 | /// <summary> |
76 | /// Adds a new friend to the database for XUser | 85 | /// Adds a new friend to the database for XUser |
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs index 75c4dc1..4fc2fea 100644 --- a/OpenSim/Framework/Communications/UserManagerBase.cs +++ b/OpenSim/Framework/Communications/UserManagerBase.cs | |||
@@ -361,8 +361,6 @@ namespace OpenSim.Framework.Communications | |||
361 | /// <param name="request">The users loginrequest</param> | 361 | /// <param name="request">The users loginrequest</param> |
362 | public void CreateAgent(UserProfileData profile, XmlRpcRequest request) | 362 | public void CreateAgent(UserProfileData profile, XmlRpcRequest request) |
363 | { | 363 | { |
364 | Hashtable requestData = (Hashtable) request.Params[0]; | ||
365 | |||
366 | UserAgentData agent = new UserAgentData(); | 364 | UserAgentData agent = new UserAgentData(); |
367 | 365 | ||
368 | // User connection | 366 | // User connection |
@@ -574,6 +572,33 @@ namespace OpenSim.Framework.Communications | |||
574 | 572 | ||
575 | return user.ID; | 573 | return user.ID; |
576 | } | 574 | } |
575 | |||
576 | /// <summary> | ||
577 | /// Reset a user password | ||
578 | /// </summary> | ||
579 | /// <param name="firstName"></param> | ||
580 | /// <param name="lastName"></param> | ||
581 | /// <param name="newPassword"></param> | ||
582 | /// <returns>true if the update was successful, false otherwise</returns> | ||
583 | public bool ResetUserPassword(string firstName, string lastName, string newPassword) | ||
584 | { | ||
585 | string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(newPassword) + ":" + String.Empty); | ||
586 | |||
587 | UserProfileData profile = GetUserProfile(firstName, lastName); | ||
588 | |||
589 | if (null == profile) | ||
590 | { | ||
591 | m_log.ErrorFormat("[USERSTORAGE]: Could not find user {0} {1}", firstName, lastName); | ||
592 | return false; | ||
593 | } | ||
594 | |||
595 | profile.PasswordHash = md5PasswdHash; | ||
596 | profile.PasswordSalt = String.Empty; | ||
597 | |||
598 | UpdateUserProfile(profile); | ||
599 | |||
600 | return true; | ||
601 | } | ||
577 | 602 | ||
578 | public bool UpdateUserProfileProperties(UserProfileData UserProfile) | 603 | public bool UpdateUserProfileProperties(UserProfileData UserProfile) |
579 | { | 604 | { |
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index 4cf34bc..12ef129 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -283,6 +283,7 @@ namespace OpenSim | |||
283 | { | 283 | { |
284 | m_console.Notice(""); | 284 | m_console.Notice(""); |
285 | m_console.Notice("create user - adds a new user."); | 285 | m_console.Notice("create user - adds a new user."); |
286 | m_console.Notice("reset user password - reset a user's password."); | ||
286 | } | 287 | } |
287 | 288 | ||
288 | break; | 289 | break; |
@@ -493,6 +494,10 @@ namespace OpenSim | |||
493 | m_commsManager.AddInventoryService(cmdparams[0]); | 494 | m_commsManager.AddInventoryService(cmdparams[0]); |
494 | } | 495 | } |
495 | break; | 496 | break; |
497 | |||
498 | case "reset": | ||
499 | Reset(cmdparams); | ||
500 | break; | ||
496 | 501 | ||
497 | default: | 502 | default: |
498 | string[] tmpPluginArgs = new string[cmdparams.Length + 1]; | 503 | string[] tmpPluginArgs = new string[cmdparams.Length + 1]; |
@@ -543,6 +548,30 @@ namespace OpenSim | |||
543 | break; | 548 | break; |
544 | } | 549 | } |
545 | } | 550 | } |
551 | |||
552 | /// <summary> | ||
553 | /// Execute switch for some of the reset commands | ||
554 | /// </summary> | ||
555 | /// <param name="args"></param> | ||
556 | protected void Reset(string[] args) | ||
557 | { | ||
558 | if (args.Length == 0) | ||
559 | return; | ||
560 | |||
561 | switch (args[0]) | ||
562 | { | ||
563 | case "user": | ||
564 | |||
565 | switch (args[1]) | ||
566 | { | ||
567 | case "password": | ||
568 | ResetUserPassword(args); | ||
569 | break; | ||
570 | } | ||
571 | |||
572 | break; | ||
573 | } | ||
574 | } | ||
546 | 575 | ||
547 | /// <summary> | 576 | /// <summary> |
548 | /// Turn on some debugging values for OpenSim. | 577 | /// Turn on some debugging values for OpenSim. |
@@ -650,6 +679,7 @@ namespace OpenSim | |||
650 | { | 679 | { |
651 | m_console.Notice(""); | 680 | m_console.Notice(""); |
652 | m_console.Notice("create user - adds a new user."); | 681 | m_console.Notice("create user - adds a new user."); |
682 | m_console.Notice("reset user password - reset a user's password."); | ||
653 | } | 683 | } |
654 | } | 684 | } |
655 | 685 | ||
@@ -769,6 +799,31 @@ namespace OpenSim | |||
769 | m_log.ErrorFormat("[CONSOLE]: A user with the name {0} {1} already exists!", firstName, lastName); | 799 | m_log.ErrorFormat("[CONSOLE]: A user with the name {0} {1} already exists!", firstName, lastName); |
770 | } | 800 | } |
771 | } | 801 | } |
802 | |||
803 | /// <summary> | ||
804 | /// Reset a user password. | ||
805 | /// </summary> | ||
806 | /// <param name="cmdparams"></param> | ||
807 | private void ResetUserPassword(string[] cmdparams) | ||
808 | { | ||
809 | string firstName; | ||
810 | string lastName; | ||
811 | string newPassword; | ||
812 | |||
813 | if (cmdparams.Length < 3) | ||
814 | firstName = MainConsole.Instance.CmdPrompt("First name"); | ||
815 | else firstName = cmdparams[2]; | ||
816 | |||
817 | if ( cmdparams.Length < 4 ) | ||
818 | lastName = MainConsole.Instance.CmdPrompt("Last name"); | ||
819 | else lastName = cmdparams[3]; | ||
820 | |||
821 | if ( cmdparams.Length < 5 ) | ||
822 | newPassword = MainConsole.Instance.PasswdPrompt("New password"); | ||
823 | else newPassword = cmdparams[4]; | ||
824 | |||
825 | m_commsManager.ResetUserPassword(firstName, lastName, newPassword); | ||
826 | } | ||
772 | 827 | ||
773 | protected void SaveXml(string[] cmdparams) | 828 | protected void SaveXml(string[] cmdparams) |
774 | { | 829 | { |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs index b8268eb..0ca85d2 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs | |||
@@ -469,6 +469,11 @@ namespace OpenSim.Region.Communications.OGS1 | |||
469 | { | 469 | { |
470 | throw new Exception("The method or operation is not implemented."); | 470 | throw new Exception("The method or operation is not implemented."); |
471 | } | 471 | } |
472 | |||
473 | public bool ResetUserPassword(string firstName, string lastName, string newPassword) | ||
474 | { | ||
475 | throw new Exception("The method or operation is not implemented."); | ||
476 | } | ||
472 | 477 | ||
473 | // TODO | 478 | // TODO |
474 | public bool UpdateUserProfile(UserProfileData data) | 479 | public bool UpdateUserProfile(UserProfileData data) |