mirror of https://github.com/MISP/MISP
fix: [widget] attribute trend widget ambiguity fixed in query
- filtering on time would throw an exception as the loaded relation to Events also contains a timestamp fieldpull/9086/head
parent
96971de5ac
commit
72e57e3829
|
@ -76,16 +76,16 @@ class TrendingAttributesWidget
|
||||||
if (is_string($time_window) && substr($time_window, -1) === 'd') {
|
if (is_string($time_window) && substr($time_window, -1) === 'd') {
|
||||||
$time_window = ((int)substr($time_window, 0, -1)) * 24 * 60 * 60;
|
$time_window = ((int)substr($time_window, 0, -1)) * 24 * 60 * 60;
|
||||||
}
|
}
|
||||||
$conditions = $time_window === -1 ? [] : ['timestamp >=' => time() - $time_window];
|
$conditions = $time_window === -1 ? [] : ['Attribute.timestamp >=' => time() - $time_window];
|
||||||
$conditions['deleted'] = 0;
|
$conditions['Attribute.deleted'] = 0;
|
||||||
$conditionsToParse = ['type', 'category', 'to_ids'];
|
$conditionsToParse = ['type', 'category', 'to_ids'];
|
||||||
foreach ($conditionsToParse as $parsedCondition) {
|
foreach ($conditionsToParse as $parsedCondition) {
|
||||||
if (!empty($options[$parsedCondition])) {
|
if (!empty($options[$parsedCondition])) {
|
||||||
$conditions[$parsedCondition] = $options[$parsedCondition];
|
$conditions['Attribute.' . $parsedCondition] = $options[$parsedCondition];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($options['exclude'])) {
|
if (!empty($options['exclude'])) {
|
||||||
$conditions['value1 NOT IN'] = $options['exclude'];
|
$conditions['Attribute.value1 NOT IN'] = $options['exclude'];
|
||||||
}
|
}
|
||||||
if (!empty($options['org_filter'])) {
|
if (!empty($options['org_filter'])) {
|
||||||
$conditions['Event.orgc_id IN'] = $this->getOrgList($options);
|
$conditions['Event.orgc_id IN'] = $this->getOrgList($options);
|
||||||
|
@ -97,8 +97,8 @@ class TrendingAttributesWidget
|
||||||
if (!empty($user['Role']['perm_site_admin'])) {
|
if (!empty($user['Role']['perm_site_admin'])) {
|
||||||
$values = $attributeModel->find('all', [
|
$values = $attributeModel->find('all', [
|
||||||
'recursive' => -1,
|
'recursive' => -1,
|
||||||
'fields' => ['value1', 'count(Attribute.value1) as Attribute__frequency'],
|
'fields' => ['Attribute.value1', 'count(Attribute.value1) as Attribute__frequency'],
|
||||||
'group' => ['value1'],
|
'group' => ['Attributevalue1'],
|
||||||
'conditions' => $conditions,
|
'conditions' => $conditions,
|
||||||
'contain' => ['Event.orgc_id'],
|
'contain' => ['Event.orgc_id'],
|
||||||
'order' => 'count(Attribute.value1) desc',
|
'order' => 'count(Attribute.value1) desc',
|
||||||
|
@ -113,8 +113,8 @@ class TrendingAttributesWidget
|
||||||
];
|
];
|
||||||
$values = $attributeModel->find('all', [
|
$values = $attributeModel->find('all', [
|
||||||
'recursive' => -1,
|
'recursive' => -1,
|
||||||
'fields' => ['value1', 'count(Attribute.value1) as Attribute__frequency', 'distribution', 'sharing_group_id'],
|
'fields' => ['Attribute.value1', 'count(Attribute.value1) as Attribute__frequency', 'Attribute.distribution', 'Attribute.sharing_group_id'],
|
||||||
'group' => 'value1',
|
'group' => 'Attribute.value1',
|
||||||
'contain' => [
|
'contain' => [
|
||||||
'Event.org_id',
|
'Event.org_id',
|
||||||
'Event.distribution',
|
'Event.distribution',
|
||||||
|
|
Loading…
Reference in New Issue