示例#1
0
        public async Task <OperationResult> ChangePassword(UserRecoverDto recoverDto)
        {
            var result = new OperationResult();
            var user   = await userRepository.GetUserByRecoveryAddress(recoverDto.RecoveryString);

            if (user == null)
            {
                result.IsSuccessful = false;
                result.Message      = "Podano zły link przywracania !";
                return(result);
            }

            user.Salt            = GetSalt();
            user.Password        = ComputeHash(user.Salt, recoverDto.NewPassword);
            user.RecoveryAddress = "";

            var repoResult = await userRepository.SaveChangesAsync();

            if (repoResult > 0)
            {
                result.IsSuccessful = true;
                result.Message      = "Hasło zostało zmienione !";
            }
            else
            {
                result.IsSuccessful = false;
                result.Message      = "Ups coś poszło nie tak !";
            }
            return(result);
        }
示例#2
0
        public async Task <IActionResult> Recover(UserRecoverDto userRecover)
        {
            if (!await _auth.Recover(userRecover.Email.ToLower()))
            {
                return(BadRequest("Email doesn't exist"));
            }

            return(Ok());
        }
示例#3
0
        public async Task <IActionResult> ChangePassword(UserRecoverDto userRecoverDto)
        {
            var result = await _loginService.ChangePassword(userRecoverDto);

            if (result.IsSuccessful)
            {
                return(Ok(result.Message));
            }
            return(StatusCode(500, result.Message));
        }