Exemple #1
0
        public IActionResult ChangPassWord(UserChangPasswordModel userChangePass)
        {
            string userId = this.GetUserId();
            var    rs     = _iuserService.ChangPassword(userChangePass, userId);

            return(Ok(rs));
        }
        public ExcutionResultAuth ChangPassword(UserChangPasswordModel model, string userId)
        {
            ExcutionResultAuth result = new ExcutionResultAuth();

            try
            {
                if (model != null && model.NewPassword == model.ConfirmPassword)
                {
                    //create salt
                    string salt = BCrypt.Net.BCrypt.GenerateSalt(SaltRevision.Revision2A);
                    //create hash
                    var hashPass = BCrypt.Net.BCrypt.HashPassword(model.NewPassword, salt);
                    var user     = provider.getEmpCode(userId);
                    if (user != null)
                    {
                        foreach (var u in user)
                        {
                            var passwordVerify = BCrypt.Net.BCrypt.Verify(model.OldPassword, u.passWord);
                            if (passwordVerify)
                            {
                                u.passWord = hashPass;
                                provider.UpdatePassword(u);
                            }
                            else
                            {
                                throw new Exception("Mật khẩu cũ không đúng. Bạn hãy kiểm tra lại!");
                            }
                        }
                    }
                    else
                    {
                        throw new Exception("Thông tin đăng nhập không hợp lệ!");
                    }
                }
                else
                {
                    result.Message = "Xac nhan mat khau chua chinh xac";
                }
            }
            catch (Exception e)
            {
                result.ErrorCode = 1;
                result.Message   = e.Message;
            }
            return(result);
        }