mirror of https://github.com/MISP/MISP
fix: [taxonomy] Support unicode chars in tag names
parent
de71271e43
commit
c98fa16cec
|
@ -471,7 +471,7 @@ class TaxonomiesController extends AppController
|
|||
|
||||
private function __search($value)
|
||||
{
|
||||
$value = strtolower(trim($value));
|
||||
$value = mb_strtolower(trim($value));
|
||||
$searchTerm = "%$value%";
|
||||
$taxonomyPredicateIds = $this->Taxonomy->TaxonomyPredicate->TaxonomyEntry->find('column', [
|
||||
'fields' => ['TaxonomyEntry.taxonomy_predicate_id'],
|
||||
|
|
|
@ -217,7 +217,7 @@ class Taxonomy extends AppModel
|
|||
if ($filter) {
|
||||
$namespaceLength = strlen($taxonomy['Taxonomy']['namespace']);
|
||||
foreach ($entries as $k => $entry) {
|
||||
if (strpos(substr(strtoupper($entry['tag']), $namespaceLength), strtoupper($filter)) === false) {
|
||||
if (strpos(substr(mb_strtolower($entry['tag']), $namespaceLength), mb_strtolower($filter)) === false) {
|
||||
unset($entries[$k]);
|
||||
}
|
||||
}
|
||||
|
@ -542,12 +542,9 @@ class Taxonomy extends AppModel
|
|||
return $taxonomies;
|
||||
}
|
||||
|
||||
public function getTaxonomyForTag($tagName, $metaOnly = false, $fullTaxonomy = False)
|
||||
public function getTaxonomyForTag($tagName, $metaOnly = false, $fullTaxonomy = false)
|
||||
{
|
||||
if (preg_match('/^[^:="]+:[^:="]+="[^:="]+"$/i', $tagName)) {
|
||||
$temp = explode(':', $tagName);
|
||||
$pieces = array_merge(array($temp[0]), explode('=', $temp[1]));
|
||||
$pieces[2] = trim($pieces[2], '"');
|
||||
if (preg_match('/^([^:="]+):([^:="]+)="([^:="]+)"$/i', $tagName, $matches)) {
|
||||
$contain = array(
|
||||
'TaxonomyPredicate' => array(
|
||||
'TaxonomyEntry' => array()
|
||||
|
@ -555,15 +552,15 @@ class Taxonomy extends AppModel
|
|||
);
|
||||
if (!$fullTaxonomy) {
|
||||
$contain['TaxonomyPredicate']['conditions'] = array(
|
||||
'LOWER(TaxonomyPredicate.value)' => strtolower($pieces[1])
|
||||
'LOWER(TaxonomyPredicate.value)' => mb_strtolower($matches[2]),
|
||||
);
|
||||
$contain['TaxonomyPredicate']['TaxonomyEntry']['conditions'] = array(
|
||||
'LOWER(TaxonomyEntry.value)' => strtolower($pieces[2])
|
||||
'LOWER(TaxonomyEntry.value)' => mb_strtolower($matches[3]),
|
||||
);
|
||||
}
|
||||
$taxonomy = $this->find('first', array(
|
||||
'recursive' => -1,
|
||||
'conditions' => array('LOWER(Taxonomy.namespace)' => strtolower($pieces[0])),
|
||||
'conditions' => array('LOWER(Taxonomy.namespace)' => mb_strtolower($matches[1])),
|
||||
'contain' => $contain
|
||||
));
|
||||
if ($metaOnly && !empty($taxonomy)) {
|
||||
|
@ -575,12 +572,12 @@ class Taxonomy extends AppModel
|
|||
$contain = array('TaxonomyPredicate' => array());
|
||||
if (!$fullTaxonomy) {
|
||||
$contain['TaxonomyPredicate']['conditions'] = array(
|
||||
'LOWER(TaxonomyPredicate.value)' => strtolower($pieces[1])
|
||||
'LOWER(TaxonomyPredicate.value)' => mb_strtolower($pieces[1])
|
||||
);
|
||||
}
|
||||
$taxonomy = $this->find('first', array(
|
||||
'recursive' => -1,
|
||||
'conditions' => array('LOWER(Taxonomy.namespace)' => strtolower($pieces[0])),
|
||||
'conditions' => array('LOWER(Taxonomy.namespace)' => mb_strtolower($pieces[0])),
|
||||
'contain' => $contain
|
||||
));
|
||||
if ($metaOnly && !empty($taxonomy)) {
|
||||
|
|
Loading…
Reference in New Issue