public async Task <ActionResult> ChangePassword([FromBody] ModifyPasswordRequest modifyPasswordRequest)
        {
            try
            {
                var mainResponse = await CheckTenantDetails();

                if (mainResponse.Status == false)
                {
                    _json = Mapper.convert <Tenant>(mainResponse);
                    return(BadRequest(_json));
                }

                modifyPasswordRequest.Host   = _host;
                modifyPasswordRequest.APIKey = mainResponse.tenantResponse.APIKey;
                var userResponse = await _userService.ChangePassword(modifyPasswordRequest);

                userResponse.Status  = true;
                userResponse.Message = Constants.PASSWORD_CHANGED;
                _json = Mapper.convert <UserResponse>(_response);
                return(new OkObjectResult(_json));
            }
            catch (Exception ex)
            {
                _response.Message = ex.Message;
                _response.Status  = false;
                _json             = Mapper.convert <UserResponse>(_response);
                return(BadRequest(_json));
            }
        }
        public async Task <UserResponse> ChangePassword(ModifyPasswordRequest modifyPasswordRequest)
        {
            modifyPasswordRequest.NewPassword = EncryptDecryptHelper.GetMd5Hash(modifyPasswordRequest.NewPassword);
            modifyPasswordRequest.OldPassword = EncryptDecryptHelper.GetMd5Hash(modifyPasswordRequest.OldPassword);

            var user = await _userRepository.checkUserExists(modifyPasswordRequest.Username, modifyPasswordRequest.APIKey);

            if (user == null)
            {
                throw new Exception(Constants.NO_RECORD_FOUND);
            }

            if (user.PasswordHash != modifyPasswordRequest.OldPassword)
            {
                throw new Exception(Constants.OLD_PASSWORD_INCORRECT);
            }
            if (user.PasswordHash == modifyPasswordRequest.NewPassword)
            {
                throw new Exception(Constants.OLD_NEW_PASSWORD_SAME_ERROR);
            }

            user.PasswordHash = modifyPasswordRequest.NewPassword;
            user.ModifiedBy   = modifyPasswordRequest.Username;
            user.ModifiedOn   = DateTime.UtcNow;

            await _userRepository.UpdateAsync(user);

            var userResponse = _mapper.Map <UserResponse>(user);

            return(userResponse);
        }
Exemple #3
0
        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="req"><see cref="ModifyPasswordRequest"/></param>
        /// <returns><see cref="ModifyPasswordResponse"/></returns>
        public ModifyPasswordResponse ModifyPasswordSync(ModifyPasswordRequest req)
        {
            JsonResponseModel <ModifyPasswordResponse> rsp = null;

            try
            {
                var strResp = this.InternalRequestSync(req, "ModifyPassword");
                rsp = JsonConvert.DeserializeObject <JsonResponseModel <ModifyPasswordResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
        public void ResetPassword_PassingNewPasswordHardcoded_CompareStatus()
        {
            var request = new ModifyPasswordRequest();

            request.Username    = "";      //Enter "Receiver's" email address here
            request.NewPassword = "******";
            request.APIKey      = "APIKEY";
            request.Host        = "5000";
            var          expectedStatus = "True";
            var          response       = _authAPIController.ResetPassword(request);
            var          jsonString     = JsonConvert.SerializeObject(response.Result);
            JObject      obj            = JObject.Parse(jsonString);
            BaseResponse baseResponse   = JsonConvert.DeserializeObject <BaseResponse>((string)obj.SelectToken("Value"));
            var          status         = Convert.ToString(baseResponse.Status);

            Assert.Matches(expectedStatus, status);
        }
        public async Task <UserResponse> ResetPassword(ModifyPasswordRequest modifyPasswordRequest)
        {
            modifyPasswordRequest.NewPassword = EncryptDecryptHelper.GetMd5Hash(modifyPasswordRequest.NewPassword);

            var user = await _userRepository.checkUserExists(modifyPasswordRequest.Username, modifyPasswordRequest.APIKey);

            if (user == null)
            {
                throw new Exception(Constants.NO_RECORD_FOUND);
            }

            user.PasswordHash      = modifyPasswordRequest.NewPassword;
            user.ResetTokenExpired = null;
            user.ResetToken        = null;
            user.ModifiedBy        = modifyPasswordRequest.Username;
            user.ModifiedOn        = DateTime.UtcNow;

            await _userRepository.UpdateAsync(user);

            var userResponse = _mapper.Map <UserResponse>(user);

            return(userResponse);
        }