public Response RecoverPassword(RecoverPasswordRequest request) { var user = _repository.Select<User>() .FirstOrDefault(u => u.Email == request.Email); if (user == null) { throw Errors.User_UnregisteredEmailAddress; } var logins = _repository.Select<Login>() .Where(l => l.User.Id == user.Id && l.ExpireDate > DateTime.UtcNow) .ToList(); foreach (var login in logins) { login.ExpireDate = DateTime.UtcNow; _repository.Update(login); } var recoveryLogin = CreateLogin(user, true); _mail.SendPasswordRecoveryMail(user.Email, recoveryLogin.Token); return Response.Success; }
public async Task <IActionResult> RecoverPassword(RecoverPasswordRequest request) { if (!_identityUIEndpoints.UseEmailSender.HasValue || !_identityUIEndpoints.UseEmailSender.Value) { return(NotFound()); } if (!ModelState.IsValid) { return(RedirectToAction(nameof(Login))); } Result result = await _credentialsService.RecoverPassword(request); if (result.Failure) { ModelState.AddErrors(result.Errors); return(View()); } return(Redirect(PagePath.RECOVER_PASSWORD_SUCCESS)); }
public async Task <IActionResult> RetrivePassword([FromBody] RecoverPasswordRequest request) { if (!ModelState.IsValid) { return(this.BadRequest(new Response { IsSuccess = false, Message = "Bad request" })); } var user = await this._userHelper.GetUserByEmailAsync(request.Email); if (user == null) { return(this.BadRequest(new Response { IsSuccess = false, Message = "This email is not assigned to any user." })); } var myToken = await this._userHelper.GeneratePasswordResetTokenAsync(user); var link = this.Url.Action("ResetPassword", "Account", new { token = myToken }, protocol: HttpContext.Request.Scheme); this._mailHelper.SendMail(request.Email, "Password Reset", $"<h1>Recover Password</h1>" + $"To reset the password click in this link:</br></br>" + $"<a href = \"{link}\">Reset Password</a>"); return(this.Ok(new Response { IsSuccess = true, Message = "An email with instructions to change the password was sent." })); }
public async Task <IActionResult> GetUserByEmail([FromBody] RecoverPasswordRequest request) { if (!ModelState.IsValid) { return(this.BadRequest(new Response { IsSuccess = false, Message = "Bad request" })); } var user = await this.userHelper.GetUserByEmailAsync(request.Email); if (user == null) { return(this.BadRequest(new Response { IsSuccess = false, Message = "User don't exists." })); } return(Ok(user)); }
public async Task RecoverPassword(RecoverPasswordRequest request) { var result = _requestValidator.Validate(request); if (!result.IsValid) { throw new InvalidValueException(result.Errors.Select(e => e.ErrorMessage).ToArray()); } var user = await _dataContext.Users.Where(u => u.Email == request.Email).SingleOrDefaultAsync(); if (user == null) { throw new InvalidValueException(new[] { "Incorrect email." }); } var token = Guid.NewGuid().GuidEncode(); user.PasswordRecoveryToken = token; await _dataContext.SaveChangesAsync(); await _mailer.SendRecoverPassword(user.Email, $"{user.FirstName} {user.LastName}", token); }
public async Task <IActionResult> GetOrdersDetailTempByEmail([FromBody] RecoverPasswordRequest request) { if (!ModelState.IsValid) { return(this.BadRequest(new Response { IsSuccess = false, Message = "Bad request" })); } var user = await this.userHelper.GetUserByEmailAsync(request.Email); if (user == null) { return(this.BadRequest(new Response { IsSuccess = false, Message = "User don't exists." })); } //var l = await this.orderRepository.GetOrdersAsync(request.Email); return(this.Ok(await this.orderRepository.GetDetailTempsAsync(request.Email))); }
public async Task <IActionResult> RecoverPassword([FromBody] RecoverPasswordRequest request) { if (!ModelState.IsValid) { return(this.BadRequest(new Response { IsSuccess = false, Message = "Bad request" })); } var user = await this.userHelper.GetUserByEmailAsync(request.Email); if (user == null) { return(this.BadRequest(new Response { IsSuccess = false, Message = "Este correo electrónico no está asignado a ningún usuario.." })); } var myToken = await this.userHelper.GeneratePasswordResetTokenAsync(user); var link = this.Url.Action("ResetPassword", "Account", new { token = myToken }, protocol: HttpContext.Request.Scheme); this.mailHelper.SendMail(request.Email, "Password Reset", $"<h1>Recuperar contraseña</h1>" + $"Para restablecer la contraseña, haga clic en este enlace.:</br></br>" + $"<a href = \"{link}\">Restablecer la contraseña</a>"); return(Ok(new Response { IsSuccess = true, Message = "Se envió un correo electrónico con instrucciones para cambiar la contraseña.." })); }
public new IActionResult RecoverPassword([FromBody] RecoverPasswordRequest recoverPasswordRequest) { return(base.RecoverPassword(recoverPasswordRequest)); }
public async Task <Response> RecoverPasswordAsync(string urlBase, string servicePrefix, string controller, RecoverPasswordRequest recoverPasswordRequest) { try { var request = JsonConvert.SerializeObject(recoverPasswordRequest); var content = new StringContent(request, Encoding.UTF8, "application/json"); var client = new HttpClient { BaseAddress = new Uri(urlBase) }; var url = $"{servicePrefix}{controller}"; var response = await client.PostAsync(url, content); var answer = await response.Content.ReadAsStringAsync(); var obj = JsonConvert.DeserializeObject <Response>(answer); return(obj); } catch (Exception ex) { return(new Response { IsSuccess = false, Message = ex.Message, }); } }
public async Task <UniversalResponse <bool> > RecoverPassword(RecoverPasswordRequest request) { var response = await GetResponseAsync("api/Account/RecoverPassword", HttpMethod.Post, request); return(await WrapRecoverPasswordResponse(response)); }
public async Task <IActionResult> RecoverPassword([FromBody] RecoverPasswordRequest request) { await _loginService.RecoverPassword(request); return(Ok()); }