From 3a391ea83640962fd8a12457c737a2c3315dc393 Mon Sep 17 00:00:00 2001 From: z Date: Mon, 22 Jun 2020 14:30:52 +0800 Subject: [PATCH] * finish task #7277. --- framework/base/helper.class.php | 2 +- lib/base/dao/dao.class.php | 7 +++++-- lib/base/filter/filter.class.php | 4 +++- module/bug/config.php | 5 +++-- module/caselib/config.php | 2 +- module/product/config.php | 3 ++- module/story/config.php | 1 + module/task/config.php | 3 ++- module/testcase/config.php | 1 + module/upgrade/model.php | 2 +- module/user/config.php | 1 + 11 files changed, 21 insertions(+), 10 deletions(-) diff --git a/framework/base/helper.class.php b/framework/base/helper.class.php index 02c7a5861b..9eb7388355 100644 --- a/framework/base/helper.class.php +++ b/framework/base/helper.class.php @@ -220,7 +220,7 @@ class baseHelper return "IN ('" . join("','", $idList) . "')"; } - if(!function_exists('get_magic_quotes_gpc') or !get_magic_quotes_gpc()) $idList = addslashes($idList); + if((!function_exists('get_magic_quotes_gpc') or !get_magic_quotes_gpc()) and is_string($idList)) $idList = addslashes($idList); return "IN ('" . str_replace(',', "','", str_replace(' ', '', $idList)) . "')"; } diff --git a/lib/base/dao/dao.class.php b/lib/base/dao/dao.class.php index 1b48c4cf45..eeca668075 100644 --- a/lib/base/dao/dao.class.php +++ b/lib/base/dao/dao.class.php @@ -1067,8 +1067,9 @@ class baseDAO { $table = strtolower($this->table); } - $fieldLabel = isset($lang->$table->$fieldName) ? $lang->$table->$fieldName : $fieldName; - $value = isset($this->sqlobj->data->$fieldName) ? $this->sqlobj->data->$fieldName : null; + $fieldLabel = isset($lang->$table->$fieldName) ? $lang->$table->$fieldName : $fieldName; + $selectFields = isset($config->$table->selectFields) ? $config->$table->selectFields : ''; + $value = isset($this->sqlobj->data->$fieldName) ? $this->sqlobj->data->$fieldName : null; /* * 检查唯一性。 @@ -1103,6 +1104,8 @@ class baseDAO { ${"arg$i"} = isset($funcArgs[$i + 2]) ? $funcArgs[$i + 2] : null; } + if(strtolower($funcName) == 'notempty' and !empty($selectFields) and strpos(",{$selectFields},", ",{$fieldName},") !== false) $arg0 = $fieldName; + $checkFunc = 'check' . $funcName; if(validater::$checkFunc($value, $arg0, $arg1, $arg2) === false) { diff --git a/lib/base/filter/filter.class.php b/lib/base/filter/filter.class.php index 3b5d29a4de..b797a0cd0d 100644 --- a/lib/base/filter/filter.class.php +++ b/lib/base/filter/filter.class.php @@ -324,12 +324,14 @@ class baseValidater * Not empty checking. * * @param mixed $var + * @param string $fieldName * @static * @access public * @return bool */ - public static function checkNotEmpty($var) + public static function checkNotEmpty($var, $fieldName = '') { + if($fieldName) return !empty($var); return strlen(trim($var)) != 0; } diff --git a/module/bug/config.php b/module/bug/config.php index 09f22203bf..873f6647a6 100644 --- a/module/bug/config.php +++ b/module/bug/config.php @@ -1,7 +1,8 @@ bug = new stdClass(); -$config->bug->batchCreate = 10; -$config->bug->longlife = 7; +$config->bug->batchCreate = 10; +$config->bug->longlife = 7; +$config->bug->selectFields = 'module,project,pri,severity,type,story,task,os,browser,plan,assignedTo,resolvedBuild'; $config->bug->create = new stdclass(); $config->bug->edit = new stdclass(); diff --git a/module/caselib/config.php b/module/caselib/config.php index 994c2381b4..70e6b61492 100644 --- a/module/caselib/config.php +++ b/module/caselib/config.php @@ -1,6 +1,6 @@ caselib = new stdclass(); -$config->caselib->create = new stdclass(); +$config->caselib->create = new stdclass(); $config->caselib->createcase = new stdclass(); $config->caselib->create->requiredFields = 'name'; $config->caselib->createcase->requiredFields = 'title,type'; diff --git a/module/product/config.php b/module/product/config.php index e8b6a17d9c..3493a2fe4a 100644 --- a/module/product/config.php +++ b/module/product/config.php @@ -1,6 +1,7 @@ product = new stdclass(); -$config->product->orderBy = 'isClosed,order_desc'; +$config->product->orderBy = 'isClosed,order_desc'; +$config->product->selectFields = 'line,PO,QD,RD,type'; $config->product->customBatchEditFields = 'line,PO,QD,RD,status,type,desc'; diff --git a/module/story/config.php b/module/story/config.php index bf40278686..c31aeb56e0 100644 --- a/module/story/config.php +++ b/module/story/config.php @@ -4,6 +4,7 @@ $config->story = new stdclass(); $config->story->batchCreate = 10; $config->story->affectedFixedNum = 7; $config->story->needReview = 1; +$config->story->selectFields = 'module,plan,source,pri'; $config->story->batchClose = new stdclass(); $config->story->batchClose->columns = 10; diff --git a/module/task/config.php b/module/task/config.php index 0d38725c36..603d2a03ab 100644 --- a/module/task/config.php +++ b/module/task/config.php @@ -1,6 +1,7 @@ task = new stdclass(); -$config->task->batchCreate = 10; +$config->task->batchCreate = 10; +$config->task->selectFields = 'story,pri,assignedTo'; $config->task->create = new stdclass(); $config->task->edit = new stdclass(); diff --git a/module/testcase/config.php b/module/testcase/config.php index 6019046b7a..4e974b6013 100644 --- a/module/testcase/config.php +++ b/module/testcase/config.php @@ -3,6 +3,7 @@ $config->testcase = new stdclass(); $config->testcase->defaultSteps = 3; $config->testcase->batchCreate = 10; $config->testcase->needReview = 0; +$config->testcase->selectFields = 'lib,stage,story,pri,status'; $config->testcase->create = new stdclass(); $config->testcase->edit = new stdclass(); diff --git a/module/upgrade/model.php b/module/upgrade/model.php index acd6702d8a..ce40149a8c 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -2586,7 +2586,7 @@ class upgradeModel extends model { if($this->app->getModuleName() == 'upgrade' and $this->session->upgrading) return false; $statusFile = $this->app->getAppRoot() . 'www' . DIRECTORY_SEPARATOR . 'ok.txt'; - return (!file_exists($statusFile) or (time() - filemtime($statusFile)) > 3600) ? $statusFile : false; + return (!is_file($statusFile) or (time() - filemtime($statusFile)) > 3600) ? $statusFile : false; } /** diff --git a/module/user/config.php b/module/user/config.php index a4f9af6619..1768d33ab7 100644 --- a/module/user/config.php +++ b/module/user/config.php @@ -17,3 +17,4 @@ $config->user->contactField = 'mobile,phone,qq,dingding,weixin,skype,whatsapp,sl $config->user->failTimes = 6; $config->user->lockMinutes = 10; $config->user->batchCreate = 10; +$config->user->selectFields = 'dept,role';