From 9b6fdf78ce82a15891254e0e8962af1df36ddef4 Mon Sep 17 00:00:00 2001 From: leiyong <1549684884@qq.com> Date: Wed, 28 Oct 2020 10:41:46 +0800 Subject: [PATCH] * Adjust whitelist setting logic. --- module/personnel/model.php | 1 - module/product/model.php | 9 +++++++-- module/program/model.php | 14 ++++++++++---- module/program/view/prjedit.html.php | 2 +- module/project/model.php | 8 ++++++-- 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/module/personnel/model.php b/module/personnel/model.php index 4751dc8232..22366f516c 100644 --- a/module/personnel/model.php +++ b/module/personnel/model.php @@ -247,7 +247,6 @@ class personnelModel extends model $users = array_filter($users); $users = array_unique($users); - $accounts = array(); foreach($users as $account) { diff --git a/module/product/model.php b/module/product/model.php index c9a722276e..ee409f80b5 100644 --- a/module/product/model.php +++ b/module/product/model.php @@ -473,6 +473,7 @@ class productModel extends model ->setDefault('createdBy', $this->app->user->account) ->setDefault('createdDate', helper::now()) ->setDefault('createdVersion', $this->config->version) + ->setIF($this->post->acl == 'open', 'whitelist', '') ->stripTags($this->config->product->editor->create['id'], $this->config->allowedTags) ->join('whitelist', ',') ->remove('uid') @@ -490,7 +491,8 @@ class productModel extends model $this->file->updateObjectID($this->post->uid, $productID, 'product'); $this->dao->update(TABLE_PRODUCT)->set('`order`')->eq($productID * 5)->where('id')->eq($productID)->exec(); - $this->loadModel('personnel')->updateWhitelist($this->post->whitelist, 'product', $productID); + $whitelist = explode(',', $product->whitelist); + $this->loadModel('personnel')->updateWhitelist($whitelist, 'product', $productID); if($product->acl != 'open') $this->loadModel('user')->updateUserView($productID, 'product'); /* Create doc lib. */ @@ -518,6 +520,7 @@ class productModel extends model $productID = (int)$productID; $oldProduct = $this->dao->findById($productID)->from(TABLE_PRODUCT)->fetch(); $product = fixer::input('post') + ->setIF($this->post->acl == 'open', 'whitelist', '') ->join('whitelist', ',') ->stripTags($this->config->product->editor->edit['id'], $this->config->allowedTags) ->remove('uid') @@ -531,10 +534,12 @@ class productModel extends model ->check('code', 'unique', "id != $productID and deleted = '0'") ->where('id')->eq($productID) ->exec(); + if(!dao::isError()) { $this->file->updateObjectID($this->post->uid, $productID, 'product'); - $this->loadModel('personnel')->updateWhitelist($this->post->whitelist, 'product', $productID); + $whitelist = explode(',', $product->whitelist); + $this->loadModel('personnel')->updateWhitelist($whitelist, 'product', $productID); if($product->acl != 'open') $this->loadModel('user')->updateUserView($productID, 'product'); return common::createChanges($oldProduct, $product); } diff --git a/module/program/model.php b/module/program/model.php index 9a3d07fd57..3add6b8ae3 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -250,7 +250,6 @@ class programModel extends model ->cleanInt('budget') ->stripTags($this->config->program->editor->pgmcreate['id'], $this->config->allowedTags) ->get(); - $whitelist = explode(',', $program->whitelist); if($program->parent) { @@ -283,6 +282,7 @@ class programModel extends model $programID = $this->dao->lastInsertId(); $this->dao->update(TABLE_PROGRAM)->set('`order`')->eq($programID * 5)->where('id')->eq($programID)->exec(); // Save order. + $whitelist = explode(',', $program->whitelist); $this->loadModel('personnel')->updateWhitelist($whitelist, 'program', $programID); if($program->acl != 'open') $this->loadModel('user')->updateUserView($programID, 'program'); @@ -332,6 +332,7 @@ class programModel extends model ->setDefault('end', '') ->setIF($this->post->begin == '0000-00-00', 'begin', '') ->setIF($this->post->end == '0000-00-00', 'end', '') + ->setIF($this->post->acl == 'open', 'whitelist', '') ->join('whitelist', ',') ->stripTags($this->config->program->editor->pgmedit['id'], $this->config->allowedTags) ->remove('uid') @@ -376,7 +377,8 @@ class programModel extends model if(!dao::isError()) { $this->file->updateObjectID($this->post->uid, $programID, 'project'); - $this->loadModel('personnel')->updateWhitelist($this->post->whitelist, 'program', $programID); + $whitelist = explode(',', $program->whitelist); + $this->loadModel('personnel')->updateWhitelist($whitelist, 'program', $programID); if($program->acl != 'open') $this->loadModel('user')->updateUserView($programID, 'program'); if($oldProgram->parent != $program->parent) $this->processNode($programID, $program->parent, $oldProgram->path, $oldProgram->grade); @@ -1062,6 +1064,7 @@ class programModel extends model ->setDefault('status', 'wait') ->setIF($this->post->longTime == 1, 'end', '') ->setIF($this->post->longTime == 1, 'days', 0) + ->setIF($this->post->acl == 'open', 'whitelist', '') ->setDefault('openedBy', $this->app->user->account) ->setDefault('end', '') ->setDefault('openedDate', helper::now()) @@ -1103,7 +1106,8 @@ class programModel extends model if(!dao::isError()) { $projectID = $this->dao->lastInsertId(); - $this->loadModel('personnel')->updateWhitelist($this->post->whitelist, 'project', $projectID); + $whitelist = explode(',', $project->whitelist); + $this->loadModel('personnel')->updateWhitelist($whitelist, 'project', $projectID); if($project->acl != 'open') $this->loadModel('user')->updateUserView($projectID, 'project'); /* Save order. */ @@ -1154,6 +1158,7 @@ class programModel extends model ->setIF($this->post->longTime == 1, 'days', 0) ->setIF($this->post->begin == '0000-00-00', 'begin', '') ->setIF($this->post->end == '0000-00-00', 'end', '') + ->setIF($this->post->acl == 'open', 'whitelist', '') ->join('whitelist', ',') ->stripTags($this->config->program->editor->prjedit['id'], $this->config->allowedTags) ->remove('longTime') @@ -1194,7 +1199,8 @@ class programModel extends model if(!dao::isError()) { $this->file->updateObjectID($this->post->uid, $projectID, 'project'); - $this->loadModel('personnel')->updateWhitelist($this->post->whitelist, 'project', $projectID); + $whitelist = explode(',', $project->whitelist); + $this->loadModel('personnel')->updateWhitelist($whitelist, 'project', $projectID); if($project->acl != 'open') $this->loadModel('user')->updateUserView($projectID, 'project'); if($oldProject->parent != $project->parent) $this->processNode($projectID, $project->parent, $oldProject->path, $oldProject->grade); diff --git a/module/program/view/prjedit.html.php b/module/program/view/prjedit.html.php index 4472701e29..493db5a4d0 100644 --- a/module/program/view/prjedit.html.php +++ b/module/program/view/prjedit.html.php @@ -118,7 +118,7 @@ project->acl;?> acl, "onclick='setWhite(this.value);'", 'block'));?> - + whitelist;?> whitelist, 'class="form-control chosen" multiple');?> diff --git a/module/project/model.php b/module/project/model.php index a663b6a611..8ff365b554 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -320,6 +320,7 @@ class projectModel extends model ->setDefault('openedDate', helper::now()) ->setDefault('openedVersion', $this->config->version) ->setDefault('team', substr($this->post->name,0, 30)) + ->setIF($this->post->acl == 'open', 'whitelist', '') ->join('whitelist', ',') ->add('type', $sprintType) ->stripTags($this->config->project->editor->create['id'], $this->config->allowedTags) @@ -393,7 +394,8 @@ class projectModel extends model $lib->acl = 'default'; $this->dao->insert(TABLE_DOCLIB)->data($lib)->exec(); - $this->loadModel('personnel')->updateWhitelist($this->post->whitelist, 'sprint', $projectID); + $whitelist = explode(',', $sprint->whitelist); + $this->loadModel('personnel')->updateWhitelist($whitelist, 'sprint', $projectID); if($sprint->acl != 'open') $this->updateUserView($projectID); if(!dao::isError()) $this->loadModel('score')->create('program', 'createguide', $projectID); @@ -418,6 +420,7 @@ class projectModel extends model $project = fixer::input('post') ->setIF($this->post->begin == '0000-00-00', 'begin', '') ->setIF($this->post->end == '0000-00-00', 'end', '') + ->setIF($this->post->acl == 'open', 'whitelist', '') ->setDefault('team', $this->post->name) ->join('whitelist', ',') ->stripTags($this->config->project->editor->edit['id'], $this->config->allowedTags) @@ -458,7 +461,8 @@ class projectModel extends model } } - $this->loadModel('personnel')->updateWhitelist($this->post->whitelist, 'sprint', $projectID); + $whitelist = explode(',', $project->whitelist); + $this->loadModel('personnel')->updateWhitelist($whitelist, 'sprint', $projectID); /* Fix bug#3074, Update views for team members. */ if($project->acl != 'open') $this->updateUserView($projectID, 'sprint', $changedAccounts);