mirror of https://github.com/MISP/MISP
fix: [sync] Adding a new server caused the pull/push rules to be incorrectly set to an empty string over '[]' causing sync issues, fixes #4369
- this fix resolves the issue - new servers added should be fine - it also retroactively fixes broken server connectionspull/4370/head
parent
3969389c60
commit
96951afc47
|
@ -313,6 +313,12 @@ class ServersController extends AppController
|
|||
$this->request->data['Server']['internal'] = 0;
|
||||
}
|
||||
$this->request->data['Server']['org_id'] = $this->Auth->user('org_id');
|
||||
if (empty($this->request->data['Server']['push_rules'])) {
|
||||
$this->request->data['Server']['push_rules'] = '[]';
|
||||
}
|
||||
if (empty($this->request->data['Server']['pull_rules'])) {
|
||||
$this->request->data['Server']['pull_rules'] = '[]';
|
||||
}
|
||||
if ($this->Server->save($this->request->data)) {
|
||||
if (isset($this->request->data['Server']['submitted_cert'])) {
|
||||
$this->__saveCert($this->request->data, $this->Server->id, false);
|
||||
|
@ -382,7 +388,7 @@ class ServersController extends AppController
|
|||
$this->set('host_org_id', Configure::read('MISP.host_org_id'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function edit($id = null)
|
||||
{
|
||||
$this->Server->id = $id;
|
||||
|
|
|
@ -75,7 +75,7 @@ class AppModel extends Model
|
|||
13 => false, 14 => false, 15 => false, 18 => false, 19 => false, 20 => false,
|
||||
21 => false, 22 => false, 23 => false, 24 => false, 25 => false, 26 => false,
|
||||
27 => false, 28 => false, 29 => false, 30 => false, 31 => false, 32 => false,
|
||||
33 => false
|
||||
33 => false, 34 => false
|
||||
);
|
||||
|
||||
public function afterSave($created, $options = array())
|
||||
|
@ -171,6 +171,9 @@ class AppModel extends Model
|
|||
case 23:
|
||||
$this->__bumpReferences();
|
||||
break;
|
||||
case 34:
|
||||
$this->__fixServerPullPushRules();
|
||||
break;
|
||||
default:
|
||||
$this->updateDatabase($command);
|
||||
break;
|
||||
|
@ -2029,4 +2032,24 @@ class AppModel extends Model
|
|||
}
|
||||
return time() - ($delta * $multiplier);
|
||||
}
|
||||
|
||||
private function __fixServerPullPushRules()
|
||||
{
|
||||
$this->Server = ClassRegistry::init('Server');
|
||||
$servers = $this->Server->find('all', array('recursive' => -1));
|
||||
foreach ($servers as $server) {
|
||||
$changed = false;
|
||||
if (empty($server['Server']['pull_rules'])) {
|
||||
$server['Server']['pull_rules'] = '[]';
|
||||
$changed = true;
|
||||
}
|
||||
if (empty($server['Server']['push_rules'])) {
|
||||
$server['Server']['push_rules'] = '[]';
|
||||
$changed = true;
|
||||
}
|
||||
if ($changed) {
|
||||
$this->Server->save($server);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue