Exemplo n.º 1
0
        public JsonResult ResetPassword(AdminResetPasswordDto dto)
        {
            if (!VerifyToken(dto.Token))
            {
                return(ToJsonResult(new Result().SetRedirect(Url.Action("ForgotPassword"))));
            }

            var result = _adminResetPasswordService.ResetPassword(dto);

            if (result.IsRedirect)
            {
                result.SetRedirect(result.Success ? Url.Action("Login") : Url.Action("ForgotPassword"));
            }

            return(ToJsonResult(result));
        }
        public Result ResetPassword(AdminResetPasswordDto dto)
        {
            var validator = new AdminResetPasswordValidator();
            var result    = validator.ValidateResult(dto);

            if (!result.Success)
            {
                return(result);
            }

            var adminUser =
                _adminUserRepository.AsNoTracking.FirstOrDefault(w =>
                                                                 w.Email == dto.Email && w.ForgotPasswordToken == dto.Token && w.IsActive);

            if (adminUser == null)
            {
                return(new Result().SetError("Invalid forgot password token or token already expired.").SetBlankRedirect());
            }

            SetNewPassword(adminUser, dto.Password);

            return(new Result().SetBlankRedirect()
                   .SetSuccess("Your password has been updated successfully. Please login with your new password."));
        }