mirror of https://github.com/MISP/MISP
Merge branch 'develop' of github.com:MISP/MISP into develop
commit
70a8e8717b
|
@ -376,7 +376,11 @@ class Server extends AppModel
|
|||
private function __checkIfPulledEventExistsAndAddOrUpdate($event, $eventId, &$successes, &$fails, $eventModel, $server, $user, $jobId, $force = false)
|
||||
{
|
||||
// check if the event already exist (using the uuid)
|
||||
$existingEvent = $eventModel->find('first', array('conditions' => array('Event.uuid' => $event['Event']['uuid'])));
|
||||
$existingEvent = $eventModel->find('first', [
|
||||
'conditions' => ['Event.uuid' => $event['Event']['uuid']],
|
||||
'recursive' => -1,
|
||||
'fields' => ['id', 'locked'],
|
||||
]);
|
||||
$passAlong = $server['Server']['id'];
|
||||
if (!$existingEvent) {
|
||||
// add data for newly imported events
|
||||
|
@ -812,10 +816,7 @@ class Server extends AppModel
|
|||
public function serverEventsOverlap()
|
||||
{
|
||||
$servers = $this->find('all', [
|
||||
'conditions' => ['OR' => [
|
||||
'pull' => 1,
|
||||
// 'push' => 1,
|
||||
]],
|
||||
'conditions' => ['Server.pull' => 1],
|
||||
'order' => ['Server.id ASC'],
|
||||
'recursive' => -1,
|
||||
]);
|
||||
|
@ -825,14 +826,16 @@ class Server extends AppModel
|
|||
}
|
||||
|
||||
$serverUuids = [];
|
||||
foreach ($servers as $server) {
|
||||
foreach ($servers as &$server) {
|
||||
try {
|
||||
$uuids = $this->getEventIdsFromServer($server, true, null, true, 'events', true);
|
||||
$serverUuids[$server['Server']['id']] = $uuids;
|
||||
$uuids = $this->getEventIdsFromServer($server, true, null, true);
|
||||
$serverUuids[$server['Server']['id']] = array_flip($uuids);
|
||||
$server['Server']['events_count'] = count($uuids);
|
||||
} catch (Exception $e) {
|
||||
$this->logException("Could not get event UUIDs for server {$server['Server']['id']}", $e);
|
||||
}
|
||||
}
|
||||
unset($server);
|
||||
|
||||
$compared = [];
|
||||
foreach ($servers as $server) {
|
||||
|
@ -848,8 +851,8 @@ class Server extends AppModel
|
|||
continue;
|
||||
}
|
||||
|
||||
$intersect = count(array_intersect($serverUuids[$server['Server']['id']], $serverUuids[$server2['Server']['id']]));
|
||||
$percentage = round(100 * $intersect / count($serverUuids[$server['Server']['id']]));
|
||||
$intersect = count(array_intersect_key($serverUuids[$server['Server']['id']], $serverUuids[$server2['Server']['id']]));
|
||||
$percentage = round(100 * $intersect / $server['Server']['events_count']);
|
||||
$compared[$server['Server']['id']][$server2['Server']['id']] = [
|
||||
'percentage' => $percentage,
|
||||
'events' => $intersect,
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
<?php
|
||||
$serverTemplate = array(
|
||||
'id', 'name', 'url'
|
||||
);
|
||||
$generatePopover = function (array $server) {
|
||||
$popover = '';
|
||||
foreach (['id' => __('ID'), 'name' => __('Name'), 'url' => __('URL'), 'events_count' => __('Events count')] as $key => $name) {
|
||||
$popover .= '<span class=\'bold\'>' . $name . '</span>: <span class=\'bold blue\'>' . h($server['Server'][$key]) . '</span><br>';
|
||||
}
|
||||
return $popover;
|
||||
};
|
||||
?>
|
||||
<div class="index">
|
||||
<h2><?php echo __('Server events overlap analysis matrix');?></h2>
|
||||
|
@ -11,16 +15,12 @@
|
|||
<div>
|
||||
<table class="table table-striped table-hover table-condensed" style="width:100px;">
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th></th>
|
||||
<?php
|
||||
foreach ($servers as $server):
|
||||
$popover = '';
|
||||
foreach ($serverTemplate as $element) {
|
||||
$popover .= '<span class=\'bold\'>' . Inflector::humanize($element) . '</span>: <span class=\'bold blue\'>' . h($server['Server'][$element]) . '</span><br>';
|
||||
}
|
||||
?>
|
||||
<th>
|
||||
<div data-toggle="popover" data-content="<?= $popover; ?>" data-trigger="hover">
|
||||
<th style="text-align: center">
|
||||
<div data-toggle="popover" data-content="<?= $generatePopover($server); ?>" data-trigger="hover">
|
||||
<?= 'S' . h($server['Server']['id']) ?>
|
||||
</div>
|
||||
</th>
|
||||
|
@ -30,15 +30,11 @@
|
|||
</tr>
|
||||
<?php
|
||||
foreach ($servers as $item):
|
||||
$popover = '';
|
||||
foreach ($serverTemplate as $element) {
|
||||
$popover .= '<span class=\'bold\'>' . Inflector::humanize($element) . '</span>: <span class=\'bold blue\'>' . h($item['Server'][$element]) . '</span><br>';
|
||||
}
|
||||
?>
|
||||
<tr>
|
||||
<td class="short">
|
||||
<div data-toggle="popover" data-content="<?php echo $popover;?>" data-trigger="hover">
|
||||
<?= __('Server #%s: %s', h($item['Server']['id']), h($item['Server']['name'])) ?>
|
||||
<div data-toggle="popover" data-content="<?= $generatePopover($item) ?>" data-trigger="hover">
|
||||
<?= __('<b>S%s</b>: %s', h($item['Server']['id']), h($item['Server']['name'])) ?>
|
||||
</div>
|
||||
</td>
|
||||
<?php
|
||||
|
@ -68,11 +64,11 @@
|
|||
$popover = __('%s % of the events of %s is contained in %s (%s matching events)', $percentage, $item['Server']['name'], $item2['Server']['name'], $count);
|
||||
}
|
||||
?>
|
||||
<td class="<?= h($class); ?>">
|
||||
<div data-toggle="popover" data-content="<?php echo h($popover);?>" data-trigger="hover">
|
||||
<?= $percentage === null ? '-' : h($percentage) . ' %' ?>
|
||||
</div>
|
||||
</td>
|
||||
<td class="<?= $class ?>" style="text-align: center">
|
||||
<div data-toggle="popover" data-content="<?= h($popover) ?>" data-trigger="hover">
|
||||
<?= $percentage === null ? '–' : h($percentage) . ' %' ?>
|
||||
</div>
|
||||
</td>
|
||||
<?php
|
||||
endforeach;
|
||||
?>
|
||||
|
|
Loading…
Reference in New Issue