* finish task #38761.

This commit is contained in:
wangyidong
2021-06-21 10:56:04 +08:00
parent 48a50f9e0a
commit d30e533e92
6 changed files with 77 additions and 21 deletions
+8 -2
View File
@@ -187,7 +187,10 @@ class bugModel extends model
foreach($extendFields as $extendField)
{
$bug->{$extendField->field} = htmlspecialchars($this->post->{$extendField->field}[$i]);
$bug->{$extendField->field} = $this->post->{$extendField->field}[$i];
if(is_array($bug->{$extendField->field})) $bug->{$extendField->field} = join(',', $bug->{$extendField->field});
$bug->{$extendField->field} = htmlspecialchars($bug->{$extendField->field});
$message = $this->checkFlowRule($extendField, $bug->{$extendField->field});
if($message) die(js::alert($message));
}
@@ -724,7 +727,10 @@ class bugModel extends model
foreach($extendFields as $extendField)
{
$bug->{$extendField->field} = htmlspecialchars($this->post->{$extendField->field}[$bugID]);
$bug->{$extendField->field} = $this->post->{$extendField->field}[$bugID];
if(is_array($bug->{$extendField->field})) $bug->{$extendField->field} = join(',', $bug->{$extendField->field});
$bug->{$extendField->field} = htmlspecialchars($bug->{$extendField->field});
$message = $this->checkFlowRule($extendField, $bug->{$extendField->field});
if($message) die(js::alert($message));
}
+4 -6
View File
@@ -487,9 +487,8 @@ class doc extends control
if($doc->contentType == 'markdown')
{
$hyperdown = $this->app->loadClass('hyperdown');
$doc->content = $hyperdown->makeHtml($doc->content);
$doc->digest = $hyperdown->makeHtml($doc->digest);
$doc->content = $this->doc->processMarkdown($doc->content);
$doc->digest = $this->doc->processMarkdown($$doc->digest);
}
/* Check priv when lib is product or project. */
@@ -917,9 +916,8 @@ class doc extends control
if($doc->contentType == 'markdown')
{
$hyperdown = $this->app->loadClass('hyperdown');
$doc->content = $hyperdown->makeHtml($doc->content);
$doc->digest = $hyperdown->makeHtml($doc->digest);
$doc->content = $this->doc->processMarkdown($doc->content);
$doc->digest = $this->doc->processMarkdown($doc->digest);
}
}
+41 -7
View File
@@ -430,6 +430,7 @@ class docModel extends model
->get();
/* Fix bug #2929. strip_tags($this->post->contentMarkdown, $this->config->allowedTags)*/
$doc = $this->loadModel('file')->processImgURL($doc, $this->config->doc->editor->create['id'], $this->post->uid);
$doc->contentMarkdown = $this->post->contentMarkdown;
if($doc->acl == 'private') $doc->users = $this->app->user->account;
@@ -441,7 +442,6 @@ class docModel extends model
}
$lib = $this->getLibByID($doc->lib);
$doc = $this->loadModel('file')->processImgURL($doc, $this->config->doc->editor->create['id'], $this->post->uid);
$doc->product = $lib->product;
$doc->project = $lib->project;
$doc->execution = $lib->execution;
@@ -456,13 +456,20 @@ class docModel extends model
$docContent->content = $doc->contentType == 'html' ? $doc->content : $doc->contentMarkdown;
$docContent->type = $doc->contentType;
$docContent->version = 1;
if($doc->contentType == 'markdown') $docContent->content = str_replace('>', '>', $docContent->content);
unset($doc->contentMarkdown);
unset($doc->contentType);
unset($doc->url);
$requiredFields = $this->config->doc->create->requiredFields;
$checkContent = strpos(",$requiredFields,", ',content,') !== false;
if($checkContent)
{
$requiredFields = trim(str_replace(',content,', ',', ",$requiredFields,"), ',');
if(empty($docContent->content)) return dao::$errors['content'] = sprintf($this->lang->error->notempty, $this->lang->doc->content);
}
$this->dao->insert(TABLE_DOC)->data($doc, 'content')->autoCheck()
->batchCheck($this->config->doc->create->requiredFields, 'notempty')
->batchCheck($requiredFields, 'notempty')
->exec();
if(!dao::isError())
{
@@ -508,6 +515,7 @@ class docModel extends model
->join('mailto', ',')
->remove('comment,files,labels,uid,contactListMenu')
->get();
$doc = $this->loadModel('file')->processImgURL($doc, $this->config->doc->editor->edit['id'], $this->post->uid);
if($doc->contentType == 'markdown') $doc->content = $this->post->content;
if($doc->acl == 'private') $doc->users = $oldDoc->addedBy;
@@ -518,12 +526,9 @@ class docModel extends model
$oldDoc->digest = $oldDocContent->digest;
$oldDoc->content = $oldDocContent->content;
$oldDoc->contentType = $oldDocContent->type;
if($oldDocContent->type == 'markdown') $doc->content = str_replace('>', '>', $doc->content);
}
$lib = $this->getLibByID($doc->lib);
$doc = $this->loadModel('file')->processImgURL($doc, $this->config->doc->editor->edit['id'], $this->post->uid);
$doc->product = $lib->product;
$doc->execution = $lib->execution;
if(isset($doc->type) and $doc->type == 'url') $doc->content = $doc->url;
@@ -538,6 +543,14 @@ class docModel extends model
if($change['field'] == 'content' or $change['field'] == 'title') $changed = true;
}
$requiredFields = $this->config->doc->edit->requiredFields;
$checkContent = strpos(",$requiredFields,", ',content,') !== false;
if($checkContent)
{
$requiredFields = trim(str_replace(',content,', ',', ",$requiredFields,"), ',');
if(isset($doc->content) and empty($doc->content)) return dao::$errors['content'] = sprintf($this->lang->error->notempty, $this->lang->doc->content);
}
if($changed)
{
$doc->version = $oldDoc->version + 1;
@@ -557,7 +570,7 @@ class docModel extends model
$this->dao->update(TABLE_DOC)->data($doc, 'content')
->autoCheck()
->batchCheck($this->config->doc->edit->requiredFields, 'notempty')
->batchCheck($requiredFields, 'notempty')
->where('id')->eq((int)$docID)
->exec();
if(!dao::isError())
@@ -1904,4 +1917,25 @@ class docModel extends model
if(!isset($treeMenu[$module->parent])) $treeMenu[$module->parent] = '';
$treeMenu[$module->parent] .= '<li' . ($treeMenu[$module->id] ? ' class="closed"' : '') . '>' . $li . '</li>';
}
/**
* Process markdown.
*
* @param string $markdown
* @access public
* @return string
*/
public function processMarkdown($markdown)
{
if(empty($markdown)) return false;
$markdown = str_replace('&', '&amp;', $markdown);
$hyperdown = $this->app->loadClass('hyperdown');
$content = $hyperdown->makeHtml($markdown);
$content = htmlspecialchars_decode($content);
$content = fixer::stripDataTags($content);
return $content;
}
}
+8 -2
View File
@@ -390,7 +390,10 @@ class storyModel extends model
foreach($extendFields as $extendField)
{
$story->{$extendField->field} = htmlspecialchars($this->post->{$extendField->field}[$i]);
$story->{$extendField->field} = $this->post->{$extendField->field}[$i];
if(is_array($story->{$extendField->field})) $story->{$extendField->field} = join(',', $story->{$extendField->field});
$story->{$extendField->field} = htmlspecialchars($story->{$extendField->field});
$message = $this->checkFlowRule($extendField, $story->{$extendField->field});
if($message) die(js::alert($message));
}
@@ -1034,7 +1037,10 @@ class storyModel extends model
foreach($extendFields as $extendField)
{
$story->{$extendField->field} = htmlspecialchars($this->post->{$extendField->field}[$storyID]);
$story->{$extendField->field} = $this->post->{$extendField->field}[$storyID];
if(is_array($story->{$extendField->field})) $story->{$extendField->field} = join(',', $story->{$extendField->field});
$story->{$extendField->field} = htmlspecialchars($story->{$extendField->field});
$message = $this->checkFlowRule($extendField, $story->{$extendField->field});
if($message) die(js::alert($message));
}
+8 -2
View File
@@ -317,7 +317,10 @@ class taskModel extends model
foreach($extendFields as $extendField)
{
$data[$i]->{$extendField->field} = htmlspecialchars($this->post->{$extendField->field}[$i]);
$data[$i]->{$extendField->field} = $this->post->{$extendField->field}[$i];
if(is_array($data[$i]->{$extendField->field})) $data[$i]->{$extendField->field} = join(',', $data[$i]->{$extendField->field});
$data[$i]->{$extendField->field} = htmlspecialchars($data[$i]->{$extendField->field});
$message = $this->checkFlowRule($extendField, $data[$i]->{$extendField->field});
if($message)
{
@@ -1089,7 +1092,10 @@ class taskModel extends model
foreach($extendFields as $extendField)
{
$task->{$extendField->field} = htmlspecialchars($this->post->{$extendField->field}[$taskID]);
$task->{$extendField->field} = $this->post->{$extendField->field}[$taskID];
if(is_array($task->{$extendField->field})) $task->{$extendField->field} = join(',', $task->{$extendField->field});
$task->{$extendField->field} = htmlspecialchars($task->{$extendField->field});
$message = $this->checkFlowRule($extendField, $task->{$extendField->field});
if($message) die(js::alert($message));
}
+8 -2
View File
@@ -170,7 +170,10 @@ class testcaseModel extends model
foreach($extendFields as $extendField)
{
$data[$i]->{$extendField->field} = htmlspecialchars($this->post->{$extendField->field}[$i]);
$data[$i]->{$extendField->field} = $this->post->{$extendField->field}[$i];
if(is_array($data[$i]->{$extendField->field})) $data[$i]->{$extendField->field} = join(',', $data[$i]->{$extendField->field});
$data[$i]->{$extendField->field} = htmlspecialchars($data[$i]->{$extendField->field});
$message = $this->checkFlowRule($extendField, $data[$i]->{$extendField->field});
if($message) die(js::alert($message));
}
@@ -854,7 +857,10 @@ class testcaseModel extends model
foreach($extendFields as $extendField)
{
$case->{$extendField->field} = htmlspecialchars($this->post->{$extendField->field}[$caseID]);
$case->{$extendField->field} = $this->post->{$extendField->field}[$caseID];
if(is_array($case->{$extendField->field})) $case->{$extendField->field} = join(',', $case->{$extendField->field});
$case->{$extendField->field} = htmlspecialchars($case->{$extendField->field});
$message = $this->checkFlowRule($extendField, $case->{$extendField->field});
if($message) die(js::alert($message));
}