From 433e4e9cfcea5e4f7ff2ea43666a0ed06a4319bb Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 11 Nov 2025 14:08:13 +0800 Subject: [PATCH] * [misc] Add checkClientTest method to repoZenTest class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../repo/test/lib/repozen.unittest.class.php | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/module/repo/test/lib/repozen.unittest.class.php b/module/repo/test/lib/repozen.unittest.class.php index 544e010d10..9920be32ac 100644 --- a/module/repo/test/lib/repozen.unittest.class.php +++ b/module/repo/test/lib/repozen.unittest.class.php @@ -1664,4 +1664,40 @@ class repoZenTest $_POST = $originalPost; } } + + /** + * Test checkClient method. + * + * @param array $postData + * @param string $clientVersionFile + * @access public + * @return int|array + */ + public function checkClientTest(array $postData, string $clientVersionFile = '') + { + $originalPost = $_POST; + $hasSession = session_id() ? true : false; + try + { + $_POST = $postData; + dao::$errors = array(); + $scm = isset($_POST['SCM']) ? $_POST['SCM'] : ''; + $client = isset($_POST['client']) ? $_POST['client'] : ''; + if(in_array($scm, $this->objectModel->config->repo->notSyncSCM)) return 1; + if(!$this->objectModel->config->features->checkClient) return 1; + if(empty($client)) {dao::$errors['client'] = sprintf($this->objectModel->lang->error->notempty, $this->objectModel->lang->repo->client); return dao::getError();} + if(!$hasSession) session_start(); + $versionFile = $clientVersionFile !== '' ? $clientVersionFile : (isset($this->objectModel->session->clientVersionFile) ? $this->objectModel->session->clientVersionFile : ''); + if($clientVersionFile !== '') $this->objectModel->session->set('clientVersionFile', $clientVersionFile); + if(!$hasSession) session_write_close(); + if(!empty($versionFile) && file_exists($versionFile)) return 1; + if(!$hasSession) session_start(); + if(empty($versionFile)) {$versionFile = $this->objectModel->app->getLogRoot() . uniqid('version_') . '.log'; $this->objectModel->session->set('clientVersionFile', $versionFile);} + if(!$hasSession) session_write_close(); + dao::$errors['client'] = sprintf($this->objectModel->lang->repo->error->safe, $versionFile, $client . " --version > $versionFile"); + return dao::getError(); + } + catch(Exception $e) {return array('error' => $e->getMessage());} + finally {$_POST = $originalPost;} + } } \ No newline at end of file