public async Task <ApiResult <bool> > ChangePassword(Guid id, UserUpdatePasswordRequest request)
        {
            var user = await _userManager.FindByIdAsync(id.ToString());

            if (user == null)
            {
                return(new ApiErrorResult <bool>("User không tồn tại"));
            }

            var checkPassword = _userManager.PasswordHasher.VerifyHashedPassword(user, user.PasswordHash, request.OldPassword);

            if (checkPassword != PasswordVerificationResult.Success)
            {
                return(new ApiErrorResult <bool>("Invalid login attempt."));
            }

            var token = await _userManager.GeneratePasswordResetTokenAsync(user);

            var result = await _userManager.ResetPasswordAsync(user, token, request.NewPassword);

            if (result.Succeeded)
            {
                return(new ApiSuccessResult <bool>());
            }

            return(new ApiErrorResult <bool>("Cập nhật mật khẩu không thành công"));
        }
Beispiel #2
0
        public void Execute(int request, UserUpdatePasswordRequest pass)
        {
            var user = AiContext.Users.Find(request);

            if (user == null || user.IsDeleted == 1)
            {
                throw new EntityNotFoundException("User");
            }
            user.Password   = pass.Password;
            user.ModifiedAt = DateTime.Now;
            AiContext.SaveChanges();
        }
Beispiel #3
0
        public void Update(UserUpdatePasswordRequest model)
        {
            string hashedPassword = HashPassword(model.Password);

            _dataProvider.ExecuteNonQuery(
                "dbo.Users_UpdatePassword",
                inputParamMapper : delegate(SqlParameterCollection paramCol)
            {
                paramCol.AddWithValue("@Id", model.Id);
                paramCol.AddWithValue("@PasswordHash", hashedPassword);
            }
                );
        }
        public ActionResult <SuccessResponse> ResetPassword(int id, UserUpdatePasswordRequest model)
        {
            int          iCode    = 200;
            BaseResponse response = null;

            try
            {
                int userId = _service.GetUserIdByToken(model.Token);

                if (userId > 0)
                {
                    bool successful = _service.VerifyTokenResetPassword(model.Token, model.Password);

                    if (successful)
                    {
                        response = new SuccessResponse();
                    }
                    else
                    {
                        iCode    = 404;
                        response = new ErrorResponse("Could not locate UserId with this token");
                    }
                }
                else
                {
                    IUserAuthData currentUser = _authService.GetCurrentUser();

                    if (currentUser != null)
                    {
                        id = currentUser.Id;

                        _service.UpdatePassword(id, model.Password, model.ConfirmPassword);

                        response = new SuccessResponse();
                    }
                    else
                    {
                        iCode    = 404;
                        response = new ErrorResponse("Could not locate UserId");
                    }
                }
            }
            catch (Exception ex)
            {
                iCode = 500;
                base.Logger.LogError(ex.ToString());
                response = new ErrorResponse($"Generic Error: ${ ex.Message }");
            }

            return(StatusCode(iCode, response));
        }
Beispiel #5
0
 public ActionResult <SuccessResponse> Update(UserUpdatePasswordRequest model)
 {
     try
     {
         _userService.Update(model);
         SuccessResponse response = new SuccessResponse();
         return(Ok200(response));
     }
     catch (Exception ex)
     {
         Logger.LogError(ex.ToString());
         return(StatusCode(500, new ErrorResponse(ex.Message)));
     }
 }
        public async Task <IActionResult> ChangePassword(Guid id, [FromBody] UserUpdatePasswordRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = await _userService.ChangePassword(id, request);

            if (!result.IsSuccess)
            {
                return(BadRequest(result));
            }
            return(Ok(result));
        }
Beispiel #7
0
        public async Task <IActionResult> ChangePassword(Guid id)
        {
            var result = await _userApiClient.GetById(id);

            if (!result.IsSuccess)
            {
                return(RedirectToAction("Error", "Home"));
            }

            var user = result.ResultDataObject;
            var updatePasswordRequest = new UserUpdatePasswordRequest()
            {
                Id       = id,
                UserName = user.UserName
            };

            return(View(updatePasswordRequest));
        }
Beispiel #8
0
        public async Task <IActionResult> UpdatePassword([FromRoute] int id, [FromBody] UserUpdatePasswordRequest request)
        {
            var updatedUser = await db.Users.FirstOrDefaultAsync(x => x.Id == id);

            if (updatedUser == null)
            {
                return(NotFound());
            }
            if (!authService.IsAuthUser(updatedUser) && !authService.AuthUserInRole(Roles.AdminRoleName))
            {
                return(Forbid());
            }

            updatedUser.PasswordHash = passwordService.SaltHash(request.NewPassword);
            updatedUser.Updated      = DateTime.UtcNow;

            await db.SaveChangesAsync();

            return(Ok());
        }
 public async Task <ApiResult <bool> > ChangePassword(Guid id, UserUpdatePasswordRequest request)
 {
     return(await PutAsync <ApiResult <bool> >($"/api/users/change-password/{id}", request));
 }
Beispiel #10
0
        public async Task <IActionResult> ChangePassword(UserUpdatePasswordRequest request)
        {
            var result = await _userApiClient.ChangePassword(request.Id, request);

            return(!result.IsSuccess ? RedirectToAction("Error", "Home") : RedirectToAction("Index", "Login"));
        }