mirror of https://github.com/MISP/MISP
chg: [event] Deduplicate tags for extended view
parent
8f806c4f1b
commit
076322230f
|
@ -2433,24 +2433,33 @@ class Event extends AppModel
|
|||
return $event;
|
||||
}
|
||||
|
||||
private function __mergeExtensions($user, $uuid, $event)
|
||||
private function __mergeExtensions(array $user, $uuid, array $event)
|
||||
{
|
||||
$extensions = $this->fetchEvent($user, array('eventsExtendingUuid' => $uuid));
|
||||
$thingsToMerge = array('Attribute', 'Object', 'ShadowAttribute', 'EventTag', 'Galaxy', 'RelatedEvent');
|
||||
foreach ($extensions as $k2 => $extensionEvent) {
|
||||
foreach ($extensions as $extensionEvent) {
|
||||
$eventMeta = array(
|
||||
'id' => $extensionEvent['Event']['id'],
|
||||
'info' => $extensionEvent['Event']['info'],
|
||||
'Orgc' => array(
|
||||
'id' => $extensionEvent['Orgc']['id'],
|
||||
'name' => $extensionEvent['Orgc']['name'],
|
||||
'uuid' => $extensionEvent['Orgc']['uuid']
|
||||
)
|
||||
'uuid' => $extensionEvent['Orgc']['uuid'],
|
||||
),
|
||||
);
|
||||
$event['Event']['extensionEvents'][$eventMeta['id']] = $eventMeta;
|
||||
$thingsToMerge = array('Attribute', 'Object', 'ShadowAttribute', 'Galaxy', 'RelatedEvent');
|
||||
foreach ($thingsToMerge as $thingToMerge) {
|
||||
$event[$thingToMerge] = array_merge($event[$thingToMerge], $extensionEvent[$thingToMerge]);
|
||||
}
|
||||
// Merge just tags that are not already in main event
|
||||
foreach ($extensionEvent['EventTag'] as $eventTag) {
|
||||
foreach ($event['EventTag'] as $eT) {
|
||||
if ($eT['Tag']['id'] == $eventTag['Tag']['id']) {
|
||||
continue 2; // tag already exists, skip
|
||||
}
|
||||
}
|
||||
$event['EventTag'][] = $eventTag;
|
||||
}
|
||||
}
|
||||
return $event;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue