public async Task <IActionResult> RequestPasswort(RequestPasswordViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var user = _dbcontext.ChatUserModels.Where(cu => cu.ChatUserName.ToLower() == model.UserName.ToLower() || cu.UserName.ToLower() == model.UserName.ToLower()).FirstOrDefault(); if (user != null) { var RemovePasswordResult = await _userManager.RemovePasswordAsync(user); if (RemovePasswordResult.Succeeded) { string password = user.GeneratePassword(); var AddPasswordResult = await _userManager.AddPasswordAsync(user, password); if (AddPasswordResult.Succeeded) { _eventBus.TriggerEvent(EventType.PasswordRequestReceived, new Args.PasswordRequestArgs { UserName = user.ChatUserName, TempPassword = password }); } } } return(RedirectToAction(nameof(Login))); }
public void RequestPassword_Post_Failure() { // arrange var mockAuthenticationService = new Mock <IAuthenticationService>(); mockAuthenticationService .Setup(m => m.ResetPasswordRequest(It.Is <RequestPasswordRequest>(x => x.UserName == "XXX"))) .Returns(new RequestPasswordResponse { Success = false, Message = "XXX" }); var model = new RequestPasswordViewModel { UserName = "******" }; var controller = new AccountController(null, mockAuthenticationService.Object, null); // act var result = controller.RequestPassword(model) as ViewResult; // assert Assert.IsNotNull(result); Assert.IsFalse(result.ViewData.ModelState.IsValid); }
public NewPassword(RequestPasswordViewModel model) { InitializeComponent(); App.Configuration.InitialAsync(this); NavigationPage.SetHasNavigationBar(this, false); _model = model; BindingContext = _model; _userPivotService = DependencyService.Get <IUserPivotService>(); _helper = DependencyService.Get <IHelper>(); buttonSubmit.Clicked += ButtonSubmit_Clicked; }
public RequestPasswordPage() { InitializeComponent(); App.Configuration.InitialAsync(this); NavigationPage.SetHasNavigationBar(this, false); _model = new RequestPasswordViewModel(); BindingContext = _model; buttonSubmit.Clicked += ButtonSubmit_Clicked; _userPivotService = DependencyService.Get <IUserPivotService>(); _helper = DependencyService.Get <IHelper>(); var tapGotPassword = new TapGestureRecognizer() { Command = new Command(GoToLogin) }; linkGotPassword.GestureRecognizers.Add(tapGotPassword); }
public async Task <IActionResult> RequestPassword(RequestPasswordViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var securityCode = await _localuserService .InitiatePasswordResetRequest(model.Email); await _localuserService.SaveChangesAsync(); //create an activation link var link = Url.ActionLink("ResetPassword", "PasswordReset", new { securityCode }); Debug.WriteLine(link); return(View("PasswordResetRequestSent")); }
public ActionResult RequestPassword(RequestPasswordViewModel model) { if (this.ModelState.IsValid) { var request = new RequestPasswordRequest { UserName = model.UserName, Expires = TimeSpan.FromHours(2) }; var response = this.authenticationService.ResetPasswordRequest(request); if (response.Success) { var message = new MessageRequest(response.Email) { Subject = "You have requested to reset your password", Message = response.ResetPasswordToken, FromAddress = Email.DoNotReply }; var messageResponse = this.messageService.SendMessage(message); if (messageResponse.Success) { this.TempData["SuccessMessage"] = response.Message; return(this.RedirectToAction("Login")); } else { this.ModelState.AddModelError(string.Empty, response.Message); } } else { this.ModelState.AddModelError(string.Empty, response.Message); } } return(this.View()); }
public void RequestPassword_Post_Success() { // arrange var mockAuthenticationService = new Mock <IAuthenticationService>(); mockAuthenticationService .Setup(m => m.ResetPasswordRequest(It.Is <RequestPasswordRequest>(x => x.UserName == "XXX"))) .Returns(new RequestPasswordResponse { Success = true, Message = "XXX" }); var mockMessageService = new Mock <IMessageService>(); mockMessageService .Setup(m => m.SendMessage(It.IsAny <MessageRequest>())) .Returns(new MessageResponse { Success = true }); var model = new RequestPasswordViewModel { UserName = "******" }; var controller = new AccountController(null, mockAuthenticationService.Object, mockMessageService.Object); // act var result = controller.RequestPassword(model) as RedirectToRouteResult; // assert Assert.IsNotNull(result); Assert.AreEqual("Login", result.RouteValues["action"]); Assert.IsNotNull(controller.TempData["SuccessMessage"]); }
public void RequestPassword_Post() { // arrange var controller = new AccountController(null, null, null); var model = new RequestPasswordViewModel { }; // act var result = controller.RequestPassword(model) as ViewResult; // assert Assert.IsNotNull(result); }
public ActionResult RequestPassword(RequestPasswordViewModel model) { if (this.ModelState.IsValid) { var request = new RequestPasswordRequest { UserName = model.UserName, Expires = TimeSpan.FromHours(2) }; var response = this.authenticationService.ResetPasswordRequest(request); if (response.Status == StatusCode.OK) { var message = new MessageRequest { //ToAddress = string.Empty, Subject = "You have requested to reset your password", Message = response.ResetPasswordToken }; this.messageService.SendMessage(message); this.TempData["SuccessMessage"] = "You have successfully requested a new password. You should receive an email presently with instructions on how to reset your password. If you do not receive an email within 15 minutes, please check that you have the correct user name and try again."; return this.RedirectToAction("Login"); } } return this.View(); }
public IActionResult RequestPassword() { var vm = new RequestPasswordViewModel(); return(View()); }