Merge remote-tracking branch 'origin/develop' into inbox-misp-sync
commit
169ebac9ab
|
@ -71,6 +71,17 @@ class MispConnector extends CommonConnectorTools
|
||||||
'value'
|
'value'
|
||||||
],
|
],
|
||||||
'redirect' => 'serverSettingsAction'
|
'redirect' => 'serverSettingsAction'
|
||||||
|
],
|
||||||
|
'serversAction' => [
|
||||||
|
'type' => 'index',
|
||||||
|
'scope' => 'child',
|
||||||
|
'params' => [
|
||||||
|
'quickFilter',
|
||||||
|
'limit',
|
||||||
|
'page',
|
||||||
|
'sort',
|
||||||
|
'direction'
|
||||||
|
]
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
public $version = '0.1';
|
public $version = '0.1';
|
||||||
|
@ -93,13 +104,20 @@ class MispConnector extends CommonConnectorTools
|
||||||
{
|
{
|
||||||
$settings = json_decode($connection->settings, true);
|
$settings = json_decode($connection->settings, true);
|
||||||
$http = new Client();
|
$http = new Client();
|
||||||
$response = $http->post($settings['url'] . '/users/view/me.json', '{}', [
|
try {
|
||||||
'headers' => [
|
$response = $http->post($settings['url'] . '/users/view/me.json', '{}', [
|
||||||
'AUTHORIZATION' => $settings['authkey'],
|
'headers' => [
|
||||||
'Accept' => 'Application/json',
|
'AUTHORIZATION' => $settings['authkey'],
|
||||||
'Content-type' => 'Application/json'
|
'Accept' => 'Application/json',
|
||||||
]
|
'Content-type' => 'Application/json'
|
||||||
]);
|
]
|
||||||
|
]);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return [
|
||||||
|
'status' => 0,
|
||||||
|
'message' => __('Connection issue.')
|
||||||
|
];
|
||||||
|
}
|
||||||
$responseCode = $response->getStatusCode();
|
$responseCode = $response->getStatusCode();
|
||||||
if ($response->isOk()) {
|
if ($response->isOk()) {
|
||||||
$status = 1;
|
$status = 1;
|
||||||
|
@ -248,6 +266,7 @@ class MispConnector extends CommonConnectorTools
|
||||||
'name' => __('Value'),
|
'name' => __('Value'),
|
||||||
'sort' => 'value',
|
'sort' => 'value',
|
||||||
'data_path' => 'value',
|
'data_path' => 'value',
|
||||||
|
'options' => 'options'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'name' => __('Type'),
|
'name' => __('Type'),
|
||||||
|
@ -288,6 +307,96 @@ class MispConnector extends CommonConnectorTools
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function serversAction(array $params): array
|
||||||
|
{
|
||||||
|
$params['validParams'] = [
|
||||||
|
'limit' => 'limit',
|
||||||
|
'page' => 'page',
|
||||||
|
'quickFilter' => 'searchall'
|
||||||
|
];
|
||||||
|
$urlParams = h($params['connection']['id']) . '/serversAction';
|
||||||
|
$response = $this->getData('/servers/index', $params);
|
||||||
|
$data = $response->getJson();
|
||||||
|
if (!empty($data)) {
|
||||||
|
return [
|
||||||
|
'type' => 'index',
|
||||||
|
'data' => [
|
||||||
|
'data' => $data,
|
||||||
|
'skip_pagination' => 1,
|
||||||
|
'top_bar' => [
|
||||||
|
'children' => [
|
||||||
|
[
|
||||||
|
'type' => 'search',
|
||||||
|
'button' => __('Filter'),
|
||||||
|
'placeholder' => __('Enter value to search'),
|
||||||
|
'data' => '',
|
||||||
|
'searchKey' => 'value',
|
||||||
|
'additionalUrlParams' => $urlParams,
|
||||||
|
'quickFilter' => 'value'
|
||||||
|
]
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'fields' => [
|
||||||
|
[
|
||||||
|
'name' => 'Id',
|
||||||
|
'sort' => 'Server.id',
|
||||||
|
'data_path' => 'Server.id',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Name',
|
||||||
|
'sort' => 'Server.name',
|
||||||
|
'data_path' => 'Server.name',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Url',
|
||||||
|
'sort' => 'Server.url',
|
||||||
|
'data_path' => 'Server.url'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Pull',
|
||||||
|
'sort' => 'Server.pull',
|
||||||
|
'element' => 'function',
|
||||||
|
'function' => function($row, $context) {
|
||||||
|
$pull = $context->Hash->extract($row, 'Server.pull')[0];
|
||||||
|
$pull_rules = $context->Hash->extract($row, 'Server.pull_rules')[0];
|
||||||
|
$pull_rules = json_encode(json_decode($pull_rules, true), JSON_PRETTY_PRINT);
|
||||||
|
echo sprintf(
|
||||||
|
'<span title="%s" class="fa fa-%s"></span>',
|
||||||
|
h($pull_rules),
|
||||||
|
$pull ? 'check' : 'times'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Push',
|
||||||
|
'element' => 'function',
|
||||||
|
'function' => function($row, $context) {
|
||||||
|
$push = $context->Hash->extract($row, 'Server.push')[0];
|
||||||
|
$push_rules = $context->Hash->extract($row, 'Server.push_rules')[0];
|
||||||
|
$push_rules = json_encode(json_decode($push_rules, true), JSON_PRETTY_PRINT);
|
||||||
|
echo sprintf(
|
||||||
|
'<span title="%s" class="fa fa-%s"></span>',
|
||||||
|
h($push_rules),
|
||||||
|
$push ? 'check' : 'times'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Caching',
|
||||||
|
'element' => 'boolean',
|
||||||
|
'data_path' => 'Server.caching_enabled'
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'title' => false,
|
||||||
|
'description' => false,
|
||||||
|
'pull' => 'right'
|
||||||
|
]
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function organisationsAction(array $params): array
|
public function organisationsAction(array $params): array
|
||||||
{
|
{
|
||||||
$params['validParams'] = [
|
$params['validParams'] = [
|
||||||
|
@ -515,14 +624,27 @@ class MispConnector extends CommonConnectorTools
|
||||||
'boolean' => 'checkbox',
|
'boolean' => 'checkbox',
|
||||||
'numeric' => 'number'
|
'numeric' => 'number'
|
||||||
];
|
];
|
||||||
$fields = [
|
if (!empty($response['options'])) {
|
||||||
[
|
$fields = [
|
||||||
'field' => 'value',
|
[
|
||||||
'label' => __('Value'),
|
'field' => 'value',
|
||||||
'default' => h($response['value']),
|
'label' => __('Value'),
|
||||||
'type' => $types[$response['type']]
|
'default' => h($response['value']),
|
||||||
],
|
'type' => 'dropdown',
|
||||||
];
|
'options' => $response['options'],
|
||||||
|
|
||||||
|
]
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
$fields = [
|
||||||
|
[
|
||||||
|
'field' => 'value',
|
||||||
|
'label' => __('Value'),
|
||||||
|
'default' => h($response['value']),
|
||||||
|
'type' => $types[$response['type']]
|
||||||
|
]
|
||||||
|
];
|
||||||
|
}
|
||||||
return [
|
return [
|
||||||
'data' => [
|
'data' => [
|
||||||
'title' => __('Modify server setting'),
|
'title' => __('Modify server setting'),
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<?php
|
||||||
|
echo $field['function']($row, $this);
|
||||||
|
?>
|
|
@ -18,6 +18,12 @@
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$data = h($data);
|
$data = h($data);
|
||||||
|
if (!empty($field['options'])) {
|
||||||
|
$options = $this->Hash->extract($row, $field['options']);
|
||||||
|
if (!empty($options)) {
|
||||||
|
$data = h($options[$data]);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!empty($field['privacy'])) {
|
if (!empty($field['privacy'])) {
|
||||||
$data = sprintf(
|
$data = sprintf(
|
||||||
'<span class="privacy-value" data-hidden-value="%s">****************************************</span> <i class="privacy-toggle fas fa-eye useCursorPointer"></i>',
|
'<span class="privacy-value" data-hidden-value="%s">****************************************</span> <i class="privacy-toggle fas fa-eye useCursorPointer"></i>',
|
||||||
|
|
|
@ -12,6 +12,9 @@
|
||||||
* - id: element ID for the input field - defaults to quickFilterField
|
* - id: element ID for the input field - defaults to quickFilterField
|
||||||
*/
|
*/
|
||||||
if (!isset($data['requirement']) || $data['requirement']) {
|
if (!isset($data['requirement']) || $data['requirement']) {
|
||||||
|
if (!empty($data['quickFilter'])) {
|
||||||
|
$quickFilter = $data['quickFilter'];
|
||||||
|
}
|
||||||
$filterEffective = !empty($quickFilter); // No filters will be picked up, thus rendering the filtering useless
|
$filterEffective = !empty($quickFilter); // No filters will be picked up, thus rendering the filtering useless
|
||||||
$filteringButton = '';
|
$filteringButton = '';
|
||||||
if (!empty($data['allowFilering'])) {
|
if (!empty($data['allowFilering'])) {
|
||||||
|
|
Loading…
Reference in New Issue