From fba9a11c580c60be67b2246e6576a90b4e7db62f Mon Sep 17 00:00:00 2001 From: tianshujie98 Date: Tue, 11 Aug 2020 09:30:12 +0800 Subject: [PATCH] * Fix bug #2581. --- module/user/model.php | 20 +++++++++++++++++++ module/user/view/batchcreate.html.php | 20 ++++++++++++++----- module/user/view/batchedit.html.php | 28 ++++++++++++++++++--------- 3 files changed, 54 insertions(+), 14 deletions(-) diff --git a/module/user/model.php b/module/user/model.php index a840d90217..6e4aa8526e 100644 --- a/module/user/model.php +++ b/module/user/model.php @@ -323,6 +323,16 @@ class userModel extends model $data[$i]->address = $users->address[$i]; $data[$i]->zipcode = $users->zipcode[$i]; + /* Check required fields. */ + foreach(explode(',', $this->config->user->create->requiredFields) as $field) + { + $field = trim($field); + if(empty($field)) continue; + if(!empty($data[$i]->$field)) continue; + + die(js::error(sprintf($this->lang->error->notempty, $this->lang->user->$field))); + } + /* Change for append field, such as feedback.*/ if(!empty($this->config->user->batchAppendFields)) { @@ -520,6 +530,16 @@ class userModel extends model $users[$id]['dept'] = $data->dept[$id] == 'ditto' ? (isset($prev['dept']) ? $prev['dept'] : 0) : $data->dept[$id]; $users[$id]['role'] = $data->role[$id] == 'ditto' ? (isset($prev['role']) ? $prev['role'] : 0) : $data->role[$id]; + /* Check required fields. */ + foreach(explode(',', $this->config->user->edit->requiredFields) as $field) + { + $field = trim($field); + if(empty($field)) continue; + if(!empty($users[$id][$field])) continue; + + die(js::error(sprintf($this->lang->error->notempty, $this->lang->user->$field))); + } + if(!empty($this->config->user->batchAppendFields)) { $appendFields = explode(',', $this->config->user->batchAppendFields); diff --git a/module/user/view/batchcreate.html.php b/module/user/view/batchcreate.html.php index 990e55b5cb..a680c42798 100644 --- a/module/user/view/batchcreate.html.php +++ b/module/user/view/batchcreate.html.php @@ -22,12 +22,22 @@ user->customBatchCreateFields},", ",{$field},") === false) continue; if($field) $visibleFields[$field] = ''; } + + foreach(explode(',', $config->user->create->requiredFields) as $field) + { + if($field) + { + $requiredFields[$field] = ''; + if(strpos(",{$config->user->custom->batchCreateFields},", ",{$field},") !== false) $visibleFields[$field] = ''; + } + } $minWidth = (count($visibleFields) > 5) ? 'w-150px' : ''; ?>
@@ -36,15 +46,15 @@ idAB;?> - '>user->dept;?> + '> user->dept;?> user->account;?> user->realname;?> - user->role;?> + '>user->role;?> user->group;?> - '>user->email;?> + '>user->email;?> '>user->gender;?> user->password;?> - '>user->commiter;?> + '> user->commiter;?> '> user->join;?> '> user->skype;?> '> user->qq;?> diff --git a/module/user/view/batchedit.html.php b/module/user/view/batchedit.html.php index a8442d65d2..2170a97e73 100644 --- a/module/user/view/batchedit.html.php +++ b/module/user/view/batchedit.html.php @@ -21,12 +21,22 @@ user->customBatchEditFields},", ",{$field},") === false) continue; if($field)$visibleFields[$field] = ''; } + + foreach(explode(',', $config->user->edit->requiredFields) as $field) + { + if($field) + { + $requiredFields[$field] = ''; + if(strpos(",{$config->user->customBatchEditFields},", ",{$field},") !== false) $visibleFields[$field] = ''; + } + } $minWidth = (count($visibleFields) > 7) ? 'w-120px' : ''; ?> @@ -42,14 +52,14 @@ '>user->commiter;?> '> user->email;?> '> user->join;?> - '> user->skype;?> - '> user->qq;?> - '> user->dingding;?> - '> user->weixin;?> - '> user->mobile;?> - '> user->slack;?> - '> user->whatsapp;?> - '> user->phone;?> + '> user->skype;?> + '> user->qq;?> + '>user->dingding;?> + '> user->weixin;?> + '> user->mobile;?> + '> user->slack;?> + '>user->whatsapp;?> + '> user->phone;?> '> user->address;?> '> user->zipcode;?>