* Adjust whitelist setting logic.
This commit is contained in:
@@ -247,7 +247,6 @@ class personnelModel extends model
|
||||
|
||||
$users = array_filter($users);
|
||||
$users = array_unique($users);
|
||||
|
||||
$accounts = array();
|
||||
foreach($users as $account)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
<th><?php echo $lang->project->acl;?></th>
|
||||
<td colspan='3' class='aclBox'><?php echo nl2br(html::radio('acl', $aclList, $project->acl, "onclick='setWhite(this.value);'", 'block'));?></td>
|
||||
</tr>
|
||||
<tr class="<?php if($program->acl == 'open') echo 'hidden';?>" id="whitelistBox">
|
||||
<tr class="<?php if($project->acl == 'open') echo 'hidden';?>" id="whitelistBox">
|
||||
<th><?php echo $lang->whitelist;?></th>
|
||||
<td><?php echo html::select('whitelist[]', $users, $project->whitelist, 'class="form-control chosen" multiple');?></td>
|
||||
<td></td>
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user