mirror of https://github.com/MISP/MISP
commit
66bbfeaaf0
|
@ -908,11 +908,11 @@ class AppController extends Controller
|
|||
/**
|
||||
* generic function to standardise on the collection of parameters. Accepts posted request objects, url params, named url params
|
||||
* @param array $options
|
||||
* @param $exception
|
||||
* @param CakeResponse $exception
|
||||
* @param array $data
|
||||
* @return array|false|mixed
|
||||
* @return array|false
|
||||
*/
|
||||
protected function _harvestParameters($options, &$exception = null, $data = array())
|
||||
protected function _harvestParameters($options, &$exception = null, $data = [])
|
||||
{
|
||||
$request = $options['request'] ?? $this->request;
|
||||
if ($request->is('post')) {
|
||||
|
@ -958,14 +958,15 @@ class AppController extends Controller
|
|||
}
|
||||
}
|
||||
}
|
||||
foreach ($data as $k => $v) {
|
||||
if (!is_array($data[$k])) {
|
||||
$data[$k] = trim($data[$k]);
|
||||
if (strpos($data[$k], '||')) {
|
||||
$data[$k] = explode('||', $data[$k]);
|
||||
foreach ($data as &$v) {
|
||||
if (is_string($v)) {
|
||||
$v = trim($v);
|
||||
if (strpos($v, '||')) {
|
||||
$v = explode('||', $v);
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($v);
|
||||
if (!empty($options['additional_delimiters'])) {
|
||||
if (!is_array($options['additional_delimiters'])) {
|
||||
$options['additional_delimiters'] = array($options['additional_delimiters']);
|
||||
|
@ -975,6 +976,7 @@ class AppController extends Controller
|
|||
foreach ($options['additional_delimiters'] as $delim) {
|
||||
if (strpos($v, $delim) !== false) {
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($found) {
|
||||
|
|
|
@ -10,27 +10,29 @@ class IndexFilterComponent extends Component
|
|||
public $Controller;
|
||||
public $isRest = null;
|
||||
|
||||
public function initialize(Controller $controller) {
|
||||
public function initialize(Controller $controller)
|
||||
{
|
||||
$this->Controller = $controller;
|
||||
}
|
||||
|
||||
// generic function to standardise on the collection of parameters. Accepts posted request objects, url params, named url params
|
||||
public function harvestParameters($paramArray, &$exception = array())
|
||||
public function harvestParameters($paramArray, &$exception = [])
|
||||
{
|
||||
$data = array();
|
||||
if (!empty($this->Controller->request->is('post'))) {
|
||||
if (empty($this->Controller->request->data)) {
|
||||
$request = $this->Controller->request;
|
||||
$data = [];
|
||||
if ($request->is('post')) {
|
||||
if (empty($request->data)) {
|
||||
$exception = $this->Controller->RestResponse->throwException(
|
||||
400,
|
||||
__('Either specify the search terms in the url, or POST a json with the filter parameters.'),
|
||||
'/' . $this->Controller->request->params['controller'] . '/' . $this->Controller->action
|
||||
'/' . $request->params['controller'] . '/' . $this->Controller->action
|
||||
);
|
||||
return false;
|
||||
} else {
|
||||
if (isset($this->Controller->request->data['request'])) {
|
||||
$data = $this->Controller->request->data['request'];
|
||||
if (isset($request->data['request'])) {
|
||||
$data = $request->data['request'];
|
||||
} else {
|
||||
$data = $this->Controller->request->data;
|
||||
$data = $request->data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -43,19 +45,20 @@ class IndexFilterComponent extends Component
|
|||
$data[$p] = $options['ordered_url_params'][$p];
|
||||
$data[$p] = str_replace(';', ':', $data[$p]);
|
||||
}
|
||||
if (isset($this->Controller->params['named'][$p])) {
|
||||
$data[$p] = str_replace(';', ':', $this->Controller->params['named'][$p]);
|
||||
if (isset($request->params['named'][$p])) {
|
||||
$data[$p] = str_replace(';', ':', $request->params['named'][$p]);
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($data as $k => $v) {
|
||||
if (!is_array($data[$k])) {
|
||||
$data[$k] = trim($data[$k]);
|
||||
if (strpos($data[$k], '||')) {
|
||||
$data[$k] = explode('||', $data[$k]);
|
||||
foreach ($data as &$v) {
|
||||
if (is_string($v)) {
|
||||
$v = trim($v);
|
||||
if (strpos($v, '||')) {
|
||||
$v = explode('||', $v);
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($v);
|
||||
if (!empty($options['additional_delimiters'])) {
|
||||
if (!is_array($options['additional_delimiters'])) {
|
||||
$options['additional_delimiters'] = array($options['additional_delimiters']);
|
||||
|
@ -65,6 +68,7 @@ class IndexFilterComponent extends Component
|
|||
foreach ($options['additional_delimiters'] as $delim) {
|
||||
if (strpos($v, $delim) !== false) {
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($found) {
|
||||
|
|
|
@ -558,7 +558,7 @@ class RestResponseComponent extends Component
|
|||
*/
|
||||
private function __sendResponse($response, $code, $format = false, $raw = false, $download = false, $headers = array())
|
||||
{
|
||||
$format = strtolower($format);
|
||||
$format = !empty($format) ? strtolower($format) : 'json';
|
||||
if ($format === 'application/xml' || $format === 'xml') {
|
||||
if (!$raw) {
|
||||
if (isset($response[0])) {
|
||||
|
@ -581,11 +581,7 @@ class RestResponseComponent extends Component
|
|||
} elseif ($format === 'csv' || $format === 'text/csv') {
|
||||
$type = 'csv';
|
||||
} else {
|
||||
if (empty($format)) {
|
||||
$type = 'json';
|
||||
} else {
|
||||
$type = $format;
|
||||
}
|
||||
$type = $format;
|
||||
$dumpSql = !empty($this->Controller->sql_dump) && Configure::read('debug') > 1;
|
||||
if (!$raw) {
|
||||
if (is_string($response)) {
|
||||
|
|
|
@ -460,7 +460,8 @@ class AttachmentTool
|
|||
*/
|
||||
public function attachmentDirIsS3()
|
||||
{
|
||||
return substr(Configure::read('MISP.attachments_dir'), 0, 2) === "s3";
|
||||
$attachmentsDir = Configure::read('MISP.attachments_dir');
|
||||
return $attachmentsDir && substr($attachmentsDir, 0, 2) === "s3";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -2551,7 +2551,7 @@ class AppModel extends Model
|
|||
$pass = Configure::read('MISP.redis_password');
|
||||
|
||||
$redis = new Redis();
|
||||
if (!$redis->connect($host, $port)) {
|
||||
if (!$redis->connect($host, (int) $port)) {
|
||||
throw new Exception("Could not connect to Redis: {$redis->getLastError()}");
|
||||
}
|
||||
if (!empty($pass)) {
|
||||
|
|
|
@ -3407,18 +3407,18 @@ class Server extends AppModel
|
|||
$currentUser = ProcessTool::whoami();
|
||||
$procAccessible = file_exists('/proc');
|
||||
foreach ($workers as $pid => $worker) {
|
||||
$entry = ($worker['type'] == 'regular') ? $worker['queue'] : $worker['type'];
|
||||
$correct_user = ($currentUser === $worker['user']);
|
||||
if (!is_numeric($pid)) {
|
||||
throw new MethodNotAllowedException('Non numeric PID found.');
|
||||
}
|
||||
$entry = $worker['type'] === 'regular' ? $worker['queue'] : $worker['type'];
|
||||
$correctUser = ($currentUser === $worker['user']);
|
||||
if ($procAccessible) {
|
||||
$alive = $correct_user ? (file_exists('/proc/' . addslashes($pid))) : false;
|
||||
$alive = $correctUser && file_exists("/proc/$pid");
|
||||
} else {
|
||||
$alive = 'N/A';
|
||||
}
|
||||
$ok = true;
|
||||
if (!$alive || !$correct_user) {
|
||||
if (!$alive || !$correctUser) {
|
||||
$ok = false;
|
||||
$workerIssueCount++;
|
||||
}
|
||||
|
@ -3426,19 +3426,19 @@ class Server extends AppModel
|
|||
'pid' => $pid,
|
||||
'user' => $worker['user'],
|
||||
'alive' => $alive,
|
||||
'correct_user' => $correct_user,
|
||||
'correct_user' => $correctUser,
|
||||
'ok' => $ok
|
||||
);
|
||||
}
|
||||
foreach ($worker_array as $k => $queue) {
|
||||
if (isset($worker_array[$k]['workers'])) {
|
||||
foreach($worker_array[$k]['workers'] as $worker) {
|
||||
if (isset($queue['workers'])) {
|
||||
foreach ($queue['workers'] as $worker) {
|
||||
if ($worker['ok']) {
|
||||
$worker_array[$k]['ok'] = true; // If at least one worker is up, the queue can be considered working
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($k != 'scheduler') {
|
||||
if ($k !== 'scheduler') {
|
||||
$worker_array[$k]['jobCount'] = $this->getBackgroundJobsTool()->getQueueSize($k);
|
||||
}
|
||||
if (!isset($queue['workers'])) {
|
||||
|
|
Loading…
Reference in New Issue