mirror of https://github.com/MISP/MISP
fix: [API] don't allow the same event tag to be added multiple times via an /events/add call, fixes #3507
parent
ee9d120a76
commit
55ef377eee
|
@ -2644,13 +2644,18 @@ class Event extends AppModel
|
|||
$data['Event']['orgc_id'] = $user['org_id'];
|
||||
}
|
||||
|
||||
$event_tag_ids = array();
|
||||
if (isset($data['Event']['EventTag'])) {
|
||||
if (isset($data['Event']['EventTag']['id'])) {
|
||||
$data['Event']['EventTag'] = array($data['Event']['EventTag']);
|
||||
}
|
||||
$eventTags = array();
|
||||
foreach ($data['Event']['EventTag'] as $k => $tag) {
|
||||
$eventTags[] = array('tag_id' => $this->EventTag->Tag->captureTag($data['Event']['EventTag'][$k]['Tag'], $user));
|
||||
$temp = $this->EventTag->Tag->captureTag($data['Event']['EventTag'][$k]['Tag'], $user);
|
||||
if ($temp && !in_array($temp, $event_tag_ids)) {
|
||||
$eventTags[] = array('tag_id' => $temp);
|
||||
$event_tag_ids[] = $temp;
|
||||
}
|
||||
unset($data['Event']['EventTag'][$k]);
|
||||
}
|
||||
$data['Event']['EventTag'] = $eventTags;
|
||||
|
@ -2663,8 +2668,9 @@ class Event extends AppModel
|
|||
}
|
||||
foreach ($data['Event']['Tag'] as $tag) {
|
||||
$tag_id = $this->EventTag->Tag->captureTag($tag, $user);
|
||||
if ($tag_id) {
|
||||
if ($tag_id && !in_array($tag_id, $event_tag_ids)) {
|
||||
$data['Event']['EventTag'][] = array('tag_id' => $tag_id);
|
||||
$event_tag_ids[] = $tag_id;
|
||||
}
|
||||
}
|
||||
unset($data['Event']['Tag']);
|
||||
|
@ -4067,6 +4073,13 @@ class Event extends AppModel
|
|||
if (!$this->__fTool->validateRouter($object['type'], $object['value'])) {
|
||||
$object['validationIssue'] = true;
|
||||
}
|
||||
} else {
|
||||
if (!$this->__wTool) {
|
||||
$this->__wTool = new ValidationWarningTool();
|
||||
}
|
||||
if (!$this->__wTool->validateRouter($object['type'], $object['value'])) {
|
||||
$object['validationIssue'] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
$object = $this->Warninglist->checkForWarning($object, $eventWarnings, $warningLists);
|
||||
|
|
Loading…
Reference in New Issue