def test_04_create_recovery_nonascii(self): smtpmock.setdata(response={"*****@*****.**": (200, "OK")}) recoverycode = "reccode" # create resolver and realm param = self.parameters param["resolver"] = "register" param["type"] = "sqlresolver" r = save_resolver(param) self.assertTrue(r > 0) # recover password with "recovery.identifier" r = add_smtpserver(identifier="myserver", server="1.2.3.4") self.assertTrue(r > 0) set_privacyidea_config("recovery.identifier", "myserver") r = create_recoverycode(User(u"nönäscii", "register"), recoverycode=recoverycode) self.assertEqual(r, True) user = User(u"nönäscii", "register") r = check_recoverycode(user, recoverycode) self.assertEqual(r, True) # The recovery code is not valid a second time r = check_recoverycode(user, recoverycode) self.assertEqual(r, False)
def test_02_check_recoverycode(self): smtpmock.setdata(response={"*****@*****.**": (200, "OK")}) recoverycode = "reccode" user = User("cornelius", self.realm1) r = create_recoverycode(user, recoverycode=recoverycode) self.assertEqual(r, True) r = check_recoverycode(user, recoverycode) self.assertEqual(r, True) # The recovery code is not valid a second time r = check_recoverycode(user, recoverycode) self.assertEqual(r, False)
def test_04_create_recovery_nonascii(self): smtpmock.setdata(response={"*****@*****.**": (200, "OK")}) recoverycode = "reccode" # create resolver and realm param = self.parameters param["resolver"] = "register" param["type"] = "sqlresolver" r = save_resolver(param) self. assertTrue(r > 0) # recover password with "recovery.identifier" r = add_smtpserver(identifier="myserver", server="1.2.3.4") self.assertTrue(r > 0) set_privacyidea_config("recovery.identifier", "myserver") r = create_recoverycode(User(u"nönäscii", "register"), recoverycode=recoverycode) self.assertEqual(r, True) user = User(u"nönäscii", "register") r = check_recoverycode(user, recoverycode) self.assertEqual(r, True) # The recovery code is not valid a second time r = check_recoverycode(user, recoverycode) self.assertEqual(r, False)
def reset_password(): """ reset the password with a given recovery code. The recovery code was sent by get_recover_code and is bound to a certain user. :jsonparam recoverycode: The recoverycode sent the the user :jsonparam password: The new password of the user :return: a json result with a boolean "result": true """ r = False user_obj = get_user_from_param(request.all_data, required) recoverycode = getParam(request.all_data, "recoverycode", required) password = getParam(request.all_data, "password", required) if check_recoverycode(user_obj, recoverycode): # set password r = user_obj.update_user_info({"password": password}) g.audit_object.log({"success": r, "info": u"{0!s}".format(user_obj)}) return send_result(r)