Пример #1
0
        public async Task <PasswordResetValidateResponse> ValidatePasswordReset(PasswordResetValidateRequest request)
        {
            var response = new PasswordResetValidateResponse();

            var user = await _userRepository.Select(x => x.PasswordResetToken == request.Token && x.Email == request.Email);

            if (user.IsExist() &&
                user.PasswordResetRequestedAt.HasValue &&
                user.PasswordResetRequestedAt.Value.AddDays(1) > DateTime.UtcNow)
            {
                response.Status = ResponseStatus.Success;
                return(response);
            }

            response.SetFailed();
            return(response);
        }
Пример #2
0
        public async Task <IActionResult> ResetPassword(string email, Guid token)
        {
            if (email.IsNotEmail() ||
                token.IsEmptyGuid())
            {
                return(RedirectToAccessDenied());
            }

            var request  = new PasswordResetValidateRequest(token, email);
            var response = await OrganizationService.ValidatePasswordReset(request);

            if (response.Status.IsNotSuccess)
            {
                return(RedirectToAccessDenied());
            }

            var model = new ResetPasswordModel
            {
                Token = token,
                Email = email
            };

            return(View(model));
        }