Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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."
            }));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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)));
        }
Esempio n. 7
0
        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.."
            }));
        }
Esempio n. 8
0
 public new IActionResult RecoverPassword([FromBody] RecoverPasswordRequest recoverPasswordRequest)
 {
     return(base.RecoverPassword(recoverPasswordRequest));
 }
Esempio n. 9
0
        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,
                });
            }
        }
Esempio n. 10
0
        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());
        }