mirror of https://github.com/MISP/MISP
new: [userSettings] New setting `default_restsearch_parameters`
It allows users to supply restSearch parameters that will be injected (and possibly overridden) into the restSearch filters.pull/5967/head
parent
591bd8f9c5
commit
bb167029eb
|
@ -4477,6 +4477,7 @@ class Attribute extends AppModel
|
|||
|
||||
$subqueryElements = $this->Event->harvestSubqueryElements($filters);
|
||||
$filters = $this->Event->addFiltersFromSubqueryElements($filters, $subqueryElements);
|
||||
$filters = $this->Event->addFiltersFromUserSettings($user, $filters);
|
||||
$conditions = $this->buildFilterConditions($user, $filters);
|
||||
$params = array(
|
||||
'conditions' => $conditions,
|
||||
|
|
|
@ -6690,6 +6690,7 @@ class Event extends AppModel
|
|||
|
||||
$subqueryElements = $this->harvestSubqueryElements($filters);
|
||||
$filters = $this->addFiltersFromSubqueryElements($filters, $subqueryElements);
|
||||
$filters = $this->addFiltersFromUserSettings($user, $filters);
|
||||
|
||||
if (empty($exportTool->mock_query_only)) {
|
||||
$filters['include_attribute_count'] = 1;
|
||||
|
@ -6969,6 +6970,14 @@ class Event extends AppModel
|
|||
return $filters;
|
||||
}
|
||||
|
||||
public function addFiltersFromUserSettings($user, $filters)
|
||||
{
|
||||
$this->UserSetting = ClassRegistry::init('UserSetting');
|
||||
$defaultParameters = $this->UserSetting->getDefaulRestSearchParameters($user);
|
||||
$filters = array_replace_recursive($defaultParameters, $filters);
|
||||
return $filters;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $event
|
||||
*/
|
||||
|
|
|
@ -1337,6 +1337,7 @@ class MispObject extends AppModel
|
|||
}
|
||||
$subqueryElements = $this->Event->harvestSubqueryElements($filters);
|
||||
$filters = $this->Event->addFiltersFromSubqueryElements($filters, $subqueryElements);
|
||||
$filters = $this->Event->addFiltersFromUserSettings($user, $filters);
|
||||
$conditions = $this->buildFilterConditions($user, $filters);
|
||||
$params = array(
|
||||
'conditions' => $conditions,
|
||||
|
|
|
@ -67,7 +67,26 @@ class UserSetting extends AppModel
|
|||
),
|
||||
'homepage' => array(
|
||||
'path' => '/events/index'
|
||||
)
|
||||
),
|
||||
'default_restsearch_parameters' => array(
|
||||
'placeholder' => array(
|
||||
'AND' => array(
|
||||
'NOT' => array(
|
||||
'EventTag.name' => array(
|
||||
'%osint%'
|
||||
)
|
||||
),
|
||||
'OR' => array(
|
||||
'Tag.name' => array(
|
||||
'tlp:green',
|
||||
'tlp:amber',
|
||||
'tlp:red',
|
||||
'%privint%'
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
);
|
||||
|
||||
// massage the data before we send it off for validation before saving anything
|
||||
|
@ -175,6 +194,22 @@ class UserSetting extends AppModel
|
|||
return false;
|
||||
}
|
||||
|
||||
public function getDefaulRestSearchParameters($user)
|
||||
{
|
||||
$setting = $this->find('first', array(
|
||||
'recursive' => -1,
|
||||
'conditions' => array(
|
||||
'UserSetting.user_id' => $user['id'],
|
||||
'UserSetting.setting' => 'default_restsearch_parameters'
|
||||
)
|
||||
));
|
||||
$parameters = array();
|
||||
if (!empty($setting)) {
|
||||
$parameters = $setting['UserSetting']['value'];
|
||||
}
|
||||
return $parameters;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check whether the event is something the user is interested (to be alerted on)
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue