mirror of https://github.com/MISP/MISP
71 lines
2.2 KiB
PHP
71 lines
2.2 KiB
PHP
<?php
|
|
$rules_raw = array();
|
|
$typeOptions = array(
|
|
'OR' => array(
|
|
'colour' => 'green',
|
|
'text' => 'allowed'
|
|
),
|
|
'NOT' => array(
|
|
'colour' => 'red',
|
|
'text' => 'blocked'
|
|
)
|
|
);
|
|
|
|
$data = Hash::get($row, $field['data_path']);
|
|
if (
|
|
!empty($data) &&
|
|
!empty($field['rule_path'][0]) &&
|
|
!empty(Hash::extract($row, $field['rule_path'])[0])
|
|
) {
|
|
$rules = Hash::extract($row, $field['rule_path'])[0];
|
|
$rules = json_decode($rules, true);
|
|
foreach ($rules as $rule => $rule_data) {
|
|
if (is_array($rule_data)) {
|
|
foreach ($rule_data as $boolean => $values) {
|
|
if (!empty($values)) {
|
|
if (is_array($values)) {
|
|
$values = implode(', ', $values);
|
|
}
|
|
$rules_raw[] = sprintf(
|
|
'<span class="bold">%s %s</span>: <span class="%s">%s</span>',
|
|
h(Inflector::humanize($rule)),
|
|
$typeOptions[$boolean]['text'],
|
|
$typeOptions[$boolean]['colour'],
|
|
h($values)
|
|
);
|
|
}
|
|
}
|
|
} else if (!empty($rule_data)){
|
|
$rules_raw[] = sprintf(
|
|
'<span class="bold">%s</span>: <span class="green">%s</span>',
|
|
h(Inflector::humanize($rule)),
|
|
h($rule_data)
|
|
);
|
|
}
|
|
}
|
|
$rules_raw = implode('<br>', $rules_raw);
|
|
}
|
|
|
|
$classes = ['fa'];
|
|
$classes[] = !empty($data) ? 'fa-check' : 'fa-times';
|
|
|
|
if (!empty($field['colors'])) {
|
|
$classes[] = !empty($data) ? 'green' : 'grey';
|
|
} else {
|
|
$classes[] = 'black';
|
|
}
|
|
|
|
echo sprintf(
|
|
'<i class="%s" role="img" aria-label="%s"></i>%s',
|
|
implode(' ', $classes),
|
|
(!empty($data)) ? __('Yes') : __('No'),
|
|
empty($rules_raw) ? '' :
|
|
sprintf(
|
|
' <span data-toggle="popover" title="%s" data-content="%s">(%s)</span>',
|
|
__('Filter rules'),
|
|
h($rules_raw),
|
|
__('Rules')
|
|
)
|
|
);
|
|
|