示例#1
0
        public async Task <IActionResult> UpdatePassword(UpdatePasswordDto updatePasswordDto)
        {
            var user = await userManager.FindByEmailAsync(updatePasswordDto.Email);

            if (user == null)
            {
                return(NotFound());
            }

            var email = HttpContext.User.FindFirstValue(ClaimTypes.Email);

            if (email != updatePasswordDto.Email)
            {
                return(Unauthorized());
            }

            var result = await userManager.ChangePasswordAsync(user, updatePasswordDto.Password, updatePasswordDto.NewPassword);

            if (result.Succeeded)
            {
                return(Ok());
            }

            return(BadRequest("Current password incorrect"));
        }
示例#2
0
 public IActionResult UpdatePassword(UpdatePasswordDto dto)
 {
     if (!ModelState.IsValid)
     {
         TempData["error"] = "Check your input.";
         return(RedirectToAction("MyProfile", new { dto.Id }));
     }
     try
     {
         updateUserPassword.Execute(dto);
         TempData["success"] = "You successfully updated your profile.";
     }
     catch (EntityCannotBeNullException e)
     {
         TempData["error"] = e.Message;
     }
     catch (EntityMustHaveConfirmedPassword e)
     {
         TempData["error"] = e.Message;
     }
     catch (Exception e)
     {
         TempData["error"] = e.Message;
     }
     return(RedirectToAction("MyProfile", "Account", new { dto.Id }));
 }
        public async Task <IActionResult> UpdatePassword([FromBody] UpdatePasswordDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Model is not valid."));
            }

            var userId = User.GetUserId();
            var dbUser = await _userManager.FindByIdAsync(userId);

            if (dbUser == null)
            {
                return(NotFound());
            }

            var updatePasswordResult = await _userManager.ChangePasswordAsync(dbUser, model.OldPassword, model.Password);

            if (updatePasswordResult.Succeeded)
            {
                return(Ok());
            }
            else
            {
                return(BadRequest(updatePasswordResult.Errors.Select(x => x.Description).FirstOrDefault()));
            }
        }
示例#4
0
        public IActionResult UpdatePassword([FromBody] UpdatePasswordDto dto)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }

                var userId = HttpContext.User.FindFirst(ClaimTypes.Sid)?.Value;

                var success = _db.User.ChangePassword(new Guid(userId), dto.OldPassword, dto.NewPassword);
                if (success)
                {
                    return(NoContent());
                }

                return(BadRequest());
            }
            catch (Exception e)
            {
                _logger.LogError($"ERROR in UpdateInterface: {e.Message}");
                return(StatusCode(500, "Internal server error"));
            }
        }
        public async Task <IActionResult> ChangePassword(UpdatePasswordDto passwordDto, [FromQuery(Name = "force")] bool force = false)
        {
            var CurrentUserId = GetTokenId();

            if (CurrentUserId != passwordDto.id)
            {
                return(BadRequest(ree("id Invalid")));
            }
            passwordDto.id = CurrentUserId;
            try
            {
                if (force && string.IsNullOrWhiteSpace(passwordDto.externalProvider))
                {
                    return(BadRequest(ree("authentication problem, please try relogin")));
                }
                var editeduser = await userService.UpdatePasswordForceAsync(CurrentUserId, passwordDto.newpassword, passwordDto.externalProvider);

                var applicationUser = await userService.GetUserById_include_roles_externalLogin(editeduser.Id);

                var editeduserDto = mapper.Map <UserDto>(applicationUser);
                var statusText    = "Done";
                return(Ok(ret(editeduserDto, statusText)));
            }
            catch (AppException ex)
            {
                return(BadRequest(ree(ex.Message)));
            }
        }
        public async Task <IActionResult> UpdatePassword(string id, [FromBody] UpdatePasswordDto model)
        {
            var AppUser = _AppUserService.Get(id);

            if (AppUser == null)
            {
                return(NotFound());
            }
            if (model == null)
            {
                return(BadRequest());
            }
            if (!_AppUserService.checkPass(id, model.OldPassword))
            {
                return(BadRequest("you don't have permisinn"));
            }

            else
            {
                if (!ModelState.IsValid)
                {
                    return(new ModelValidator.UnprocessableEntityObjectResult(ModelState));
                }

                var upuser = await _AppUserService.UpdatePassword(id, model.NewPassword.ToString());


                return(Ok("Password Updated"));
            }
        }
        public void updatePassword(UpdatePasswordDto dto)
        {
            try
            {
                _transactionManager.beginTransaction();
                var authentication = _authenticationRepo.getByType(dto.type_id, dto.type);

                bool isOldPasswordCorrect = _passwordHash.ValidatePassword(dto.old_password, authentication.password);

                if (!isOldPasswordCorrect)
                {
                    throw new InvalidValueException($"Old password is incorrect.");
                }

                authentication.password = _passwordHash.CreateHash(dto.new_password);

                _authenticationRepo.update(authentication);

                _transactionManager.commitTransaction();
            }
            catch (Exception)
            {
                _transactionManager.rollbackTransaction();
                throw;
            }

            //    tx.Complete();
            //}
        }
 public async Task <IActionResult> updatePassword([FromBody] UpdatePasswordDto updatePasswordDto)
 {
     if (!ModelState.IsValid)
     {
         return(Ok(HttpStatusCode.BadRequest));
     }
     return(Ok(await _auth.updatePassword(updatePasswordDto)));
 }
示例#9
0
        public AuthResponseDto ValidateUpdatePassword(UpdatePasswordDto updatePasswordDto)
        {
            if (updatePasswordDto.OldPassword.Length < Data.PassRequiredMinLength || updatePasswordDto.OldPassword.Length > Data.PassRequiredMaxLength)
            {
                return new AuthResponseDto {
                           Message = $"Mật khẩu cũ có độ dài trong khoảng từ {Data.PassRequiredMinLength} - {Data.PassRequiredMaxLength} ký tự"
                }
            }
            ;

            if (updatePasswordDto.Password.Length < Data.PassRequiredMinLength || updatePasswordDto.Password.Length > Data.PassRequiredMaxLength)
            {
                return new AuthResponseDto {
                           Message = $"Mật khẩu phải mới có độ dài trong khoảng từ {Data.PassRequiredMinLength} - {Data.PassRequiredMaxLength} ký tự"
                }
            }
            ;

            if (updatePasswordDto.Password != updatePasswordDto.ConfirmPassword)
            {
                return new AuthResponseDto {
                           Message = "Mật khẩu xác nhận không khớp!"
                }
            }
            ;

            var hasNumber    = new Regex(@"[0-9]+");
            var hasUpperChar = new Regex(@"[A-Z]+");
            var hasNoneAlpha = new Regex(@"[!@#$%^&*()_+=\[{\]};:<>|./?,-]");

            if (!hasNumber.IsMatch(updatePasswordDto.Password))
            {
                return new AuthResponseDto {
                           Message = "Mật khẩu mới phải có ít nhất 1 chữ số (0-9)"
                }
            }
            ;

            if (!hasUpperChar.IsMatch(updatePasswordDto.Password))
            {
                return new AuthResponseDto {
                           Message = "Mật khẩu mới phải có ít nhất 1 ký tự in hoa (A-Z)"
                }
            }
            ;

            if (!hasNoneAlpha.IsMatch(updatePasswordDto.Password))
            {
                return new AuthResponseDto {
                           Message = "Mật khẩu mới phải có ít nhất 1 ký tự đặc biệt"
                }
            }
            ;

            return(null);
        }
    }
}
示例#10
0
        public IActionResult ChangePassword(int id, [FromBody] UpdatePasswordDto passwords)
        {
            if (passwords == null)
            {
                return(BadRequest());
            }
            var passwordUpdated = _userService.ChangePassword(id, passwords);

            return(OkOrBadRequest(passwordUpdated));
        }
示例#11
0
 public IActionResult UpdatePassword(UpdatePasswordDto updatePasswordData)
 {
     return(DoWorkAfterValidation(
                () => _accountService.UpdatePassword(GetCurrentUserId(), updatePasswordData).Result
                .Match <IActionResult>(
                    Ok,
                    BadRequest
                    )
                ));
 }
示例#12
0
        public IActionResult Password([FromBody] UpdatePasswordDto userDto)
        {
            var user = _userService.UpdatePassword(userDto.UserId, userDto.Password);

            if (user == null)
            {
                return(BadRequest(new { Message = "Failed to update password." }));
            }

            return(Ok(_mapper.Map <UpdateUserDto>(user)));
        }
示例#13
0
            public async Task ChangePassword()
            {
                await ArrangeTest();

                var passwordUpdateDto = new UpdatePasswordDto(
                    "Password123!", "Skibbitydibbity123!");
                var request  = passwordUpdateDto.AsStringContent();
                var response = await _client.PatchAsync($"/api/users/{_user?.Id}/change-password", request);

                response.EnsureSuccessStatusCode();
            }
示例#14
0
        public async Task <IActionResult> UpdatePassword(UpdatePasswordDto updatePasswordDto)
        {
            var user = _mapper.Map <User>(updatePasswordDto);

            user.PasswordHash = _passwordService.Hash(updatePasswordDto.Password);

            var result = await _userService.UpdatePassword(user);

            var response = new ApiResponse <bool>(result);

            return(Ok(response));
        }
示例#15
0
        public UpdatePasswordCommand(UpdatePasswordDto dto)
        {
            Dto = dto;

            var validator = new Validator();
            var result    = validator.Validate(this);

            if (!result.IsValid)
            {
                throw new ValidationException(result.Errors);
            }
        }
示例#16
0
        public async Task <ActionResult> ChangePassword(string id, UpdatePasswordDto info)
        {
            var result = await _userService.ChangePassword(id, info.OldPassword, info.NewPassword);

            if (result.Succeeded)
            {
                _logger.LogInformation($"Password changed for user: {id}");
                return(Ok());
            }

            _logger.LogInformation($"Unable to change password for user: {id}");
            return(BadRequest());
        }
示例#17
0
        public async Task <IActionResult> UpdatePassword([FromBody] UpdatePasswordDto dto)
        {
            var user = await _userManager.FindByIdAsync(dto.UserId);

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

            if (result.Succeeded)
            {
                return(Ok());
            }

            return(BadRequest());
        }
示例#18
0
        public UserView UpdatePassword(int userId, [FromBody] UpdatePasswordDto dto)
        {
            if (!ModelState.IsValid)
            {
                throw new BadRequestException("Invalid Request");
            }

            if (_userService.hasPermissions(userId))
            {
                return(_userService.UpdatePassword(userId, dto));
            }

            throw new BadRequestException("User does not have permission for this action.");
        }
示例#19
0
        public async Task <IdentityResult> UpdatePassword(UpdatePasswordDto input)
        {
            var user = await GetCurrentUserAsync();

            var updateResult = await _userManager.ChangePasswordAsync(user, input.CurrentPassword, input.NewPassword);

            foreach (var error in updateResult.Errors)
            {
                Logger.Info($"Error Code: {error.Code}");
                Logger.Info($"Error Description: {error.Description}");
            }

            return(updateResult);
        }
示例#20
0
        public UserView UpdatePassword(int userId, UpdatePasswordDto dto)
        {
            if (dto.PassowrdConfirmation != dto.Password)
            {
                throw new BadRequestException("Passwords do not match.");
            }
            var    user = _repo.Get(userId);
            string salt = _crytpoService.GenerateSalt();
            string hash = _crytpoService.GenerateHash(salt, dto.Password);

            user.PasswordSalt = salt;
            user.PasswordHash = hash;
            _repo.Update(user);
            return(_mapper.From(user));
        }
示例#21
0
        public async Task ChangePassword(int id, UpdatePasswordDto updatePasswordDto)
        {
            var userToUpdate = await _userManager.Users.FirstOrDefaultAsync(x => x.ConsumerId == id);

            if (userToUpdate == null)
            {
                throw new InvalidOperationException();
            }
            var result = await _userManager.ChangePasswordAsync(userToUpdate, updatePasswordDto.CurrentPassword, updatePasswordDto.NewPassword);

            if (!result.Succeeded)
            {
                throw new InvalidOperationException();
            }
        }
示例#22
0
        public UserPasswordChangedReturnDto ChangePassword(int userId, UpdatePasswordDto passWords)
        {
            if (_userOperations.UserExists(userId))
            {
                return(null);
            }
            var user = _userOperations.GetUserById(userId);

            if (passWords.OldPassword == passWords.NewPassword)
            {
                return(null);
            }
            var changedUser = _userOperations.ChangePassword(user, passWords.OldPassword, passWords.NewPassword);

            return(changedUser == null ? null : Mapper.Map <UserPasswordChangedReturnDto>(changedUser));
        }
示例#23
0
 public IActionResult changePassword(UpdatePasswordDto model)
 {
     if (ModelState.IsValid)
     {
         try
         {
             _authenticationService.updatePassword(model);
             AlertHelper.setMessage(this, "Password change successful.", messageType.success);
             return(RedirectToAction(nameof(Index)));
         }
         catch (Exception ex)
         {
             AlertHelper.setMessage(this, ex.Message, messageType.error);
         }
     }
     return(View(model));
 }
示例#24
0
        public async Task ChangePassword_UserFound_PasswordChanged_ReturnsBadRequest()
        {
            // Arrange
            var updatePasswords = new UpdatePasswordDto("OldPassword123!", "NewPassword123!");
            var mockService     = new Mock <IUserService>();

            mockService.Setup(s =>
                              s.ChangePassword(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Failed());

            // Act
            _controller = new UsersController(mockService.Object, _logger);
            var result = await _controller.ChangePassword("UserId", updatePasswords);

            // Assert
            result.Should().BeOfType <BadRequestResult>();
        }
示例#25
0
        public async Task <IActionResult> UpdatePassword(UpdatePasswordDto dto)
        {
            _logger.LogInformation("Updating current user's password");

            try
            {
                var currentUserId = User.GetUserId();

                await _userService.UpdatePassword(currentUserId, dto.OldPassword, dto.NewPassword);

                return(Ok("Password updated"));
            }
            catch (UpdatePasswordFailedException uex)
            {
                _logger.LogWarning(uex, "Update password failed");
                return(BadRequest(uex.GetExceptionMessageList()));
            }
        }
示例#26
0
        public async Task <HttpStatusCode> updatePassword(UpdatePasswordDto updatePasswordDto)
        {
            User user = await _ctx.User.Where(m => m.UserId == updatePasswordDto.UserId &&
                                              m.DeletedDate == null).FirstOrDefaultAsync();

            if (user != null)
            {
                user.UserPassword = updatePasswordDto.UpdatedPassword;
                user.UpdatedDate  = DateTime.Now;
                _ctx.Update(user);
                int response = await _ctx.SaveChangesAsync();

                if (response > 0)
                {
                    return(HttpStatusCode.OK);
                }
                return(HttpStatusCode.BadRequest);
            }
            return(HttpStatusCode.BadRequest);
        }
        public async Task <ActionResult <string> > UpdateAccountPassword([FromForm] UpdatePasswordDto pass)
        {
            // check if this user is the same user who whant update the password
            var user = await GetCurrentUserAsync(HttpContext.User);

            if (user == null)
            {
                return(Unauthorized(new ApiResponse(401)));
            }

            if (pass.NewPassword == pass.ConfirmPassword)
            {
                IdentityResult create = await _userManager.ChangePasswordAsync(user, pass.OldPassword, pass.NewPassword);

                if (create.Succeeded)
                {
                    return(Ok("update password successfully"));
                }
            }
            return(Ok("somthing wrong!, or old password not right"));
        }
示例#28
0
        public async Task <IActionResult> ChangePassword(UpdatePasswordDto dto)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser applicationUser = await _userManager.FindByIdAsync(dto.ApplicationUserId.ToString());

                IdentityResult changePasswordResult =
                    await _userManager.ChangePasswordAsync(applicationUser, dto.CurrentPassword, dto.NewPassword);

                if (changePasswordResult.Succeeded)
                {
                    await _signInManager.RefreshSignInAsync(applicationUser);

                    return(Json(new { success = true }));
                }

                else
                {
                    foreach (var erorr in changePasswordResult.Errors)
                    {
                        ModelState.AddModelError(string.Empty, erorr.Description);
                    }

                    List <string> errors = new();
                    foreach (var modelStateValue in ModelState.Values.Where(m => m.Errors.Count > 0))
                    {
                        foreach (var item in modelStateValue.Errors)
                        {
                            errors.Add(item.ErrorMessage);
                        }
                    }

                    return(Json(new { success = false, errors }));
                }
            }
            else
            {
                return(Json(new { success = false, errors = "An error occurred, Please try again later." }));
            }
        }
示例#29
0
        public IActionResult changePassword(long authentication_id)
        {
            try
            {
                var authentication = _authenticationRepo.getById(authentication_id);

                if (!userIsAllowedForAction(authentication))
                {
                    throw new Exception("You do not have permission to perform the specified action.");
                }

                var changePasswordDto = new UpdatePasswordDto();
                changePasswordDto.type_id = authentication.type_id;
                changePasswordDto.type    = authentication.type;
                return(View(changePasswordDto));
            }
            catch (Exception ex)
            {
                AlertHelper.setMessage(this, ex.Message, messageType.error);
                return(RedirectToAction(nameof(Index)));
            }
        }
示例#30
0
        public async Task <IActionResult> UserUpdatePasswordAsync([FromBody] UpdatePasswordDto updatePasswordDto)
        {
            int userId = Convert.ToInt32(User.Identity.Name);

            var user = await _repositoryWrapper.UserRepository.GetByIdAsync(userId);

            if (user.Password != updatePasswordDto.OldPassword)
            {
                return(Ok(new { code = 1, msg = "原密码不正确!" }));
            }

            user.Password = updatePasswordDto.NewPassword;

            await _repositoryWrapper.UserRepository.UpdateAsync(user);

            if (!await _repositoryWrapper.UserRepository.SaveAsync())
            {
                return(BadRequest());
            }

            return(Ok(new { code = 0, msg = "密码修改成功!" }));
        }
示例#31
0
 public async Task<IHttpActionResult> PutPassword(UpdatePasswordDto updatePasswordDto)
 {
     if (!ModelState.IsValid)
     {
         return BadRequest(ModelState);
     }
     IdentityResult result = await this.AppUserManager.ChangePasswordAsync(
         updatePasswordDto.Id, updatePasswordDto.OldPassword,
         updatePasswordDto.Password);
     if (!result.Succeeded)
     {
         return GetErrorResult(result);
     }
     return Ok();
 }