* finish task #38761.
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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
@@ -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('&', '&', $markdown);
|
||||
|
||||
$hyperdown = $this->app->loadClass('hyperdown');
|
||||
$content = $hyperdown->makeHtml($markdown);
|
||||
|
||||
$content = htmlspecialchars_decode($content);
|
||||
$content = fixer::stripDataTags($content);
|
||||
return $content;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user