public async Task <PasswordChangedByAdminResponseDto> ChangePasswordByAdmin(ChangePasswordRequestDto request)
        {
            // Find user by email
            var user = await userManager.FindByIdAsync(request.Id);

            // Validate the new password
            var passwordValidator   = new PasswordValidator <ApplicationUser>();
            var passValidatorResult = await passwordValidator.ValidateAsync(userManager, user, request.NewPassword);

            if (!passValidatorResult.Succeeded)
            {
                return(new PasswordChangedByAdminResponseDto(false, 400, localizer["PasswordResetResponseErrMsg"]));
            }
            // Change user password
            var newPassword = userManager.PasswordHasher.HashPassword(user, request.NewPassword);

            user.PasswordHash = newPassword;
            user.UpdateDate   = DateTime.Now;
            // Update user
            var result = await userManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                await messager.SendPasswordChangedByAdminEmail(user.Email, ((DateTime)user.UpdateDate), user.DefaultLang, request.NewPassword);

                return(new PasswordChangedByAdminResponseDto(true, 200, localizer["PasswordRestResponseSuccessMsg"]));
            }
            else
            {
                return(new PasswordChangedByAdminResponseDto(false, 400, localizer["PasswordResetResponseErrMsg"]));
            }
        }
Example #2
0
        public async Task <IActionResult> ChangePaswordAsync([FromBody] ChangePasswordRequestDto dto)
        {
            var currentUser = await GetCurrentUserAsync();

            Logger.LogInformation($"{nameof(ChangePaswordAsync)}, current:{currentUser.ToJson()}, dto: {dto.ToJson()}");
            await _userManager.ChangePasswordAsync(await GetCurrentUserAsync(), dto.CurrentPassword, dto.NewPassword);

            return(Ok());
        }
        public async Task <IActionResult> ChangePasswordRequest([FromBody] ChangePasswordRequestDto request)
        {
            var response = await identityService.ChangePasswordByAdmin(request);

            if (!response.IsSuccess)
            {
                return(BadRequest(response));
            }
            return(Ok(response));
        }
Example #4
0
        public IActionResult ChangePassword([FromBody] ChangePasswordRequestDto changePasswordRequestDto)
        {
            _userService.ChangePassword(changePasswordRequestDto.OldPassword, changePasswordRequestDto.NewPassword);


            return(Ok(new OperationResult()
            {
                Success = true, Data = "Пароль успешно изменен", Code = 200
            }));
        }
Example #5
0
        public async Task <ResponseDto> ChangePassword([FromBody] ChangePasswordRequestDto request)
        {
            if (!ModelState.IsValid)
            {
                return(new ResultDto <AuthenticateResultModel>(ResponseCode.Validate, "Dữ liệu truyền vào không đúng", null));
            }
            var res = await _authService.UpdatePassword(request);

            return(res);
        }
Example #6
0
        public async Task <ResponseDto> UpdatePassword(ChangePasswordRequestDto request)
        {
            var user = await _userManager.FindByIdAsync(request.UserId);

            if (user == null)
            {
                return(new ResponseDto(ResponseCode.LogicError, "Tài khoản không tồn"));
            }
            var result = await _userManager.ChangePasswordAsync(user, request.OldPass, request.NewPass);

            if (result.Succeeded)
            {
                return(new ResponseDto(ResponseCode.Success, "Đổi mật khẩu thành công"));
            }
            return(new ResponseDto(ResponseCode.LogicError, "Đổi mật khẩu thất bại"));
        }
        public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordRequestDto model)
        {
            var user = await _userManager.GetUserAsync(User);

            if (!user.IsActive || !user.EmailConfirmed)
            {
                return(BadRequest());
            }

            var result = await _userManager.ChangePasswordAsync(user, model.CurrentPassword, model.NewPassword);

            if (result.Succeeded)
            {
                return(Ok());
            }
            else
            {
                return(BadRequest(result.Errors.ToList()));
            }
        }
Example #8
0
 public async Task <BaseResponseDto <ChangePasswordResponseDto> > ChangePassword(ChangePasswordRequestDto changePasswordRequestDto)
 {
     try
     {
         return(await _userService.ChangePassword(changePasswordRequestDto));
     }
     catch (Exception ex)
     {
         _logger.LogError($"Change password error: {ex}");
         return(new BaseResponseDto <ChangePasswordResponseDto>()
                .GenerateGeneralFailedResponse(ex.ToString()));
     }
 }
Example #9
0
        private PageRoutes.ChangePasswordPage CreateChangePasswordPage(ServiceProvider provider, ChangePasswordRequestDto request)
        {
            var page = new PageRoutes.ChangePasswordPage();

            provider.InjectDependencies(page);
            page.Request = request;
            return(page);
        }
Example #10
0
        public async Task <BaseResponseDto <ChangePasswordResponseDto> > ChangePassword(ChangePasswordRequestDto changePasswordRequestDto)
        {
            if (changePasswordRequestDto == null)
            {
                _logger.LogError("changePasswordRequestDto is null");
                return(new BaseResponseDto <ChangePasswordResponseDto>().GenerateFailedResponse(ErrorCodes.BadRequest));
            }

            if (string.IsNullOrEmpty(changePasswordRequestDto.NewPassword))
            {
                _logger.LogError("NewPassword is null");
                return(new BaseResponseDto <ChangePasswordResponseDto>().GenerateFailedResponse(ErrorCodes.BadRequest));
            }

            if (changePasswordRequestDto.CurrentPassword == changePasswordRequestDto.NewPassword)
            {
                _logger.LogError("NewPassword is the same as current password");
                return(new BaseResponseDto <ChangePasswordResponseDto>().GenerateFailedResponse(ErrorCodes.SameNewPassword));
            }

            var hashCurrentPassword = changePasswordRequestDto.CurrentPassword.HashMd5();

            var userId = _httpContextAccessor.HttpContext.UserId();

            var builder  = MongoExtension.GetBuilders <User>();
            var userRepo = _unitOfWork.GetRepository <User>();

            var user = await userRepo.FirstOrDefault(builder.Eq(x => x.Id, userId));

            if (user == null)
            {
                _logger.LogError("User is null");
                return(new BaseResponseDto <ChangePasswordResponseDto>().GenerateFailedResponse(ErrorCodes.NotFound));
            }

            if (!user.IsConfirmed)
            {
                return(new BaseResponseDto <ChangePasswordResponseDto>().GenerateFailedResponse(ErrorCodes.AccountHasNotBeenConfirmed));
            }

            if (!_httpContextAccessor.HttpContext.IsGoogleLogin() && user.Password != hashCurrentPassword)
            {
                _logger.LogError("Incorrect password");
                return(new BaseResponseDto <ChangePasswordResponseDto>().GenerateFailedResponse(ErrorCodes.IncorrectCurrentPassword));
            }

            var hashNewPassword = changePasswordRequestDto.NewPassword.HashMd5();

            user.Password = hashNewPassword;

            var updateDefinition = new UpdateDefinitionBuilder <User>()
                                   .Set(x => x.Password, user.Password);

            await userRepo.UpdatePartial(user, updateDefinition);

            var jwtSetting = GetJwtSetting();

            return(new BaseResponseDto <ChangePasswordResponseDto>().GenerateSuccessResponse(new ChangePasswordResponseDto
            {
                Token = user.GenerateAccessToken(jwtSetting)
            }));
        }