mirror of https://github.com/MISP/MISP
new: [galaxy] Several changes
- moved the current uuid field on cluster level to a new "collection_uuid" field to better represent the actual purpose - added new uuid field that actually captures the cluster's uuid - upgrade script is multi-execution safe - added /galaxy_clusters/view to the API - /galaxy_clusters/view can now be queried via the uuid instead of just the IDpull/3799/head
parent
5d6b7f564b
commit
ae597c8358
|
@ -115,10 +115,18 @@ class GalaxyClustersController extends AppController
|
|||
|
||||
public function view($id)
|
||||
{
|
||||
$conditions = array('GalaxyCluster.id' => $id);
|
||||
if (Validation::uuid($id)) {
|
||||
$conditions = array('GalaxyCluster.uuid' => $id);
|
||||
}
|
||||
$contain = array('Galaxy');
|
||||
if ($this->_isRest()) {
|
||||
$contain[] = 'GalaxyElement';
|
||||
}
|
||||
$cluster = $this->GalaxyCluster->find('first', array(
|
||||
'recursive' => -1,
|
||||
'contain' => array('Galaxy'),
|
||||
'conditions' => array('GalaxyCluster.id' => $id)
|
||||
'contain' => $contain,
|
||||
'conditions' => $conditions
|
||||
));
|
||||
if (!empty($cluster)) {
|
||||
$galaxyType = $cluster['GalaxyCluster']['type'];
|
||||
|
@ -136,9 +144,15 @@ class GalaxyClustersController extends AppController
|
|||
$cluster['GalaxyCluster']['tag_id'] = $tag['Tag']['id'];
|
||||
}
|
||||
}
|
||||
$this->set('id', $id);
|
||||
$this->set('galaxy_id', $cluster['Galaxy']['id']);
|
||||
$this->set('cluster', $cluster);
|
||||
if ($this->_isRest()) {
|
||||
$cluster['GalaxyCluster']['Galaxy'] = $cluster['Galaxy'];
|
||||
$cluster['GalaxyCluster']['GalaxyElement'] = $cluster['GalaxyElement'];
|
||||
return $this->RestResponse->viewData(array('GalaxyCluster' => $cluster['GalaxyCluster']), $this->response->type());
|
||||
} else {
|
||||
$this->set('id', $id);
|
||||
$this->set('galaxy_id', $cluster['Galaxy']['id']);
|
||||
$this->set('cluster', $cluster);
|
||||
}
|
||||
}
|
||||
|
||||
public function attachToEvent($event_id, $tag_name)
|
||||
|
|
|
@ -70,7 +70,7 @@ class AppModel extends Model
|
|||
1 => false, 2 => false, 3 => false, 4 => true, 5 => false, 6 => false,
|
||||
7 => false, 8 => false, 9 => false, 10 => false, 11 => false, 12 => false,
|
||||
13 => false, 14 => false, 15 => false, 18 => false, 19 => false, 20 => false,
|
||||
21 => false, 22 => false, 23 => false
|
||||
21 => false, 22 => false, 23 => false, 24 => false, 25 => false
|
||||
);
|
||||
|
||||
public function afterSave($created, $options = array())
|
||||
|
@ -261,7 +261,7 @@ class AppModel extends Model
|
|||
$sqlArray[] = "ALTER TABLE `users` ADD `external_auth_required` tinyint(1) NOT NULL DEFAULT 0;";
|
||||
$sqlArray[] = 'ALTER TABLE `users` ADD `external_auth_key` text COLLATE utf8_bin;';
|
||||
break;
|
||||
case '24betaupdates':
|
||||
case 'x24betaupdates':
|
||||
$sqlArray = array();
|
||||
$sqlArray[] = "ALTER TABLE `shadow_attributes` ADD `proposal_to_delete` tinyint(1) NOT NULL DEFAULT 0;";
|
||||
|
||||
|
@ -1046,6 +1046,18 @@ class AppModel extends Model
|
|||
case 22:
|
||||
$sqlArray[] = 'ALTER TABLE `object_references` MODIFY `deleted` tinyint(1) NOT NULL default 0;';
|
||||
break;
|
||||
case 24:
|
||||
$this->GalaxyCluster = ClassRegistry::init('GalaxyCluster');
|
||||
if (empty($this->GalaxyCluster->schema('collection_uuid'))) {
|
||||
$sqlArray[] = 'ALTER TABLE `galaxy_clusters` CHANGE `uuid` `collection_uuid` varchar(255) COLLATE utf8_bin NOT NULL;';
|
||||
$sqlArray[] = 'ALTER TABLE `galaxy_clusters` ADD COLUMN `uuid` varchar(255) COLLATE utf8_bin NOT NULL default \'\';';
|
||||
}
|
||||
break;
|
||||
case 25:
|
||||
$this->__dropIndex('galaxy_clusters', 'uuid');
|
||||
$this->__addIndex('galaxy_clusters', 'uuid');
|
||||
$this->__addIndex('galaxy_clusters', 'collection_uuid');
|
||||
break;
|
||||
case 'fixNonEmptySharingGroupID':
|
||||
$sqlArray[] = 'UPDATE `events` SET `sharing_group_id` = 0 WHERE `distribution` != 4;';
|
||||
$sqlArray[] = 'UPDATE `attributes` SET `sharing_group_id` = 0 WHERE `distribution` != 4;';
|
||||
|
|
|
@ -84,7 +84,7 @@ class Galaxy extends AppModel
|
|||
$template = array(
|
||||
'source' => isset($cluster_package['source']) ? $cluster_package['source'] : '',
|
||||
'authors' => json_encode(isset($cluster_package['authors']) ? $cluster_package['authors'] : array(), true),
|
||||
'uuid' => isset($cluster_package['uuid']) ? $cluster_package['uuid'] : '',
|
||||
'collection_uuid' => isset($cluster_package['uuid']) ? $cluster_package['uuid'] : '',
|
||||
'galaxy_id' => $galaxies[$cluster_package['type']],
|
||||
'type' => $cluster_package['type'],
|
||||
'tag_name' => 'misp-galaxy:' . $cluster_package['type'] . '="'
|
||||
|
@ -141,6 +141,9 @@ class Galaxy extends AppModel
|
|||
}
|
||||
$cluster_to_save['value'] = $cluster['value'];
|
||||
$cluster_to_save['tag_name'] = $cluster_to_save['tag_name'] . $cluster['value'] . '"';
|
||||
if (!empty($cluster['uuid'])) {
|
||||
$cluster_to_save['uuid'] = $cluster['uuid'];
|
||||
}
|
||||
unset($cluster['value']);
|
||||
if (empty($cluster_to_save['description'])) {
|
||||
$cluster_to_save['description'] = '';
|
||||
|
|
Loading…
Reference in New Issue