mirror of https://github.com/MISP/MISP
Merge branch '2.4' of github.com:MISP/MISP into 2.4
commit
09cbbe3b93
|
@ -105,7 +105,7 @@ class ACLComponent extends Component
|
|||
'enrichEvent' => array('perm_add'),
|
||||
'export' => array('*'),
|
||||
'exportChoice' => array('*'),
|
||||
'exportModule' => array('*'),
|
||||
'exportModule' => array('*'),
|
||||
'filterEventIdsForPush' => array('perm_sync'),
|
||||
'filterEventIndex' => array('*'),
|
||||
'freeTextImport' => array('perm_add'),
|
||||
|
@ -120,10 +120,10 @@ class ACLComponent extends Component
|
|||
'getObjectTemplate' => array('*'),
|
||||
'hids' => array('*'),
|
||||
'index' => array('*'),
|
||||
'importChoice' => array('*'),
|
||||
'importModule' => array('*'),
|
||||
'importChoice' => array('*'),
|
||||
'importModule' => array('*'),
|
||||
'massDelete' => array('perm_site_admin'),
|
||||
'merge' => array('perm_modify'),
|
||||
'merge' => array('perm_modify'),
|
||||
'nids' => array('*'),
|
||||
'proposalEventIndex' => array('*'),
|
||||
'publish' => array('perm_publish'),
|
||||
|
@ -141,14 +141,14 @@ class ACLComponent extends Component
|
|||
'toggleCorrelation' => array('perm_add'),
|
||||
'unpublish' => array('perm_modify'),
|
||||
'updateGraph' => array('*'),
|
||||
'upload_analysis_file' => array('perm_add'),
|
||||
'upload_analysis_file' => array('perm_add'),
|
||||
'upload_sample' => array('AND' => array('perm_auth', 'perm_add')),
|
||||
'upload_stix' => array('perm_add'),
|
||||
'view' => array('*'),
|
||||
'viewEventAttributes' => array('*'),
|
||||
'viewEventGraph' => array('*'),
|
||||
'viewGraph' => array('*'),
|
||||
'viewMitreAttackMatrix' => array('*'),
|
||||
'viewMitreAttackMatrix' => array('*'),
|
||||
'xml' => array('*')
|
||||
),
|
||||
'favouriteTags' => array(
|
||||
|
|
|
@ -31,21 +31,21 @@ class RestResponseComponent extends Component
|
|||
),
|
||||
'deleteSelected' => array(
|
||||
'description' => "POST a list of attribute IDs in JSON format to this API
|
||||
to delete the given attributes. This API also expects an event ID passed via
|
||||
the URL or via the event_id key. The id key also takes 'all' as a parameter
|
||||
for a wildcard search to mass delete attributes. If you want the function to
|
||||
also hard-delete already soft-deleted attributes, pass the allow_hard_delete
|
||||
key.",
|
||||
to delete the given attributes. This API also expects an event ID passed via
|
||||
the URL or via the event_id key. The id key also takes 'all' as a parameter
|
||||
for a wildcard search to mass delete attributes. If you want the function to
|
||||
also hard-delete already soft-deleted attributes, pass the allow_hard_delete
|
||||
key.",
|
||||
'mandatory' => array('id'),
|
||||
'optional' => array('event_id', 'allow_hard_delete'),
|
||||
'params' => array('event_id')
|
||||
),
|
||||
'restSearch' => array(
|
||||
'description' => "Search MISP using a list of filter parameters and return the data
|
||||
in the selected format. The search is available on an event and an attribute level,
|
||||
just select the scope via the URL (/events/restSearch vs /attributes/restSearch).
|
||||
Besides the parameters listed, other, format specific ones can be passed along (for example: requested_attributes and includeContext for the CSV export).
|
||||
This API allows pagination via the page and limit parameters.",
|
||||
in the selected format. The search is available on an event and an attribute level,
|
||||
just select the scope via the URL (/events/restSearch vs /attributes/restSearch).
|
||||
Besides the parameters listed, other, format specific ones can be passed along (for example: requested_attributes and includeContext for the CSV export).
|
||||
This API allows pagination via the page and limit parameters.",
|
||||
'mandatory' => array('returnFormat'),
|
||||
'optional' => array('page', 'limit', 'value' , 'type', 'category', 'org', 'tags', 'from', 'to', 'last', 'eventid', 'withAttachments', 'uuid', 'publish_timestamp', 'timestamp', 'enforceWarninglist', 'to_ids', 'deleted', 'includeEventUuid', 'includeEventTags', 'event_timestamp', 'threat_level_id', 'eventinfo', 'includeProposals'),
|
||||
'params' => array()
|
||||
|
@ -70,10 +70,10 @@ class RestResponseComponent extends Component
|
|||
),
|
||||
'restSearch' => array(
|
||||
'description' => "Search MISP using a list of filter parameters and return the data
|
||||
in the selected format. The search is available on an event and an attribute level,
|
||||
just select the scope via the URL (/events/restSearch vs /attributes/restSearch).
|
||||
Besides the parameters listed, other, format specific ones can be passed along (for example: requested_attributes and includeContext for the CSV export).
|
||||
This API allows pagination via the page and limit parameters.",
|
||||
in the selected format. The search is available on an event and an attribute level,
|
||||
just select the scope via the URL (/events/restSearch vs /attributes/restSearch).
|
||||
Besides the parameters listed, other, format specific ones can be passed along (for example: requested_attributes and includeContext for the CSV export).
|
||||
This API allows pagination via the page and limit parameters.",
|
||||
'mandatory' => array('returnFormat'),
|
||||
'optional' => array('page', 'limit', 'value', 'type', 'category', 'org', 'tag', 'tags', 'searchall', 'from', 'to', 'last', 'eventid', 'withAttachments', 'metadata', 'uuid', 'published', 'publish_timestamp', 'timestamp', 'enforceWarninglist', 'sgReferenceOnly', 'eventinfo'),
|
||||
'params' => array()
|
||||
|
@ -243,11 +243,11 @@ class RestResponseComponent extends Component
|
|||
'description' => "POST a body and a subject in a JSON to send an e-mail through MISP to the user ID given in the URL",
|
||||
'mandatory' => array('subject', 'body')
|
||||
),
|
||||
'statistics' => array(
|
||||
'description' => 'Simply GET the url endpoint to view the API output of the statistics API. Additional statistics are available via the following tab-options similar to the UI: data, orgs, users, tags, attributehistogram, sightings, attackMatrix',
|
||||
'params' => array('tab'),
|
||||
'http_method' => 'GET'
|
||||
)
|
||||
'statistics' => array(
|
||||
'description' => 'Simply GET the url endpoint to view the API output of the statistics API. Additional statistics are available via the following tab-options similar to the UI: data, orgs, users, tags, attributehistogram, sightings, attackMatrix',
|
||||
'params' => array('tab'),
|
||||
'http_method' => 'GET'
|
||||
)
|
||||
),
|
||||
'Warninglist' => array(
|
||||
'checkValue' => array(
|
||||
|
|
|
@ -19,7 +19,7 @@ class EventBlacklistsController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'order' => array(
|
||||
'EventBlacklist.created' => 'DESC'
|
||||
),
|
||||
|
|
|
@ -7,7 +7,7 @@ class EventDelegationsController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'order' => array(
|
||||
'EventDelegations.id' => 'DESC'
|
||||
),
|
||||
|
|
|
@ -14,7 +14,7 @@ class EventsController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'order' => array(
|
||||
'Event.timestamp' => 'DESC'
|
||||
),
|
||||
|
@ -1483,9 +1483,9 @@ class EventsController extends AppController
|
|||
$this->set('deleted', isset($this->params['named']['deleted']) && $this->params['named']['deleted']);
|
||||
$this->set('includeRelatedTags', (!empty($this->params['named']['includeRelatedTags'])) ? 1 : 0);
|
||||
if (!$this->_isRest()) {
|
||||
if ($this->_isSiteAdmin() && $results[0]['Event']['orgc_id'] !== $this->Auth->user('org_id')) {
|
||||
$this->Flash->info(__('You are currently logged in as a site administrator and editing an event not belonging to your organisation, which goes against the sharing model of MISP. Please only use this as a last resort and use normal user account for day to day work.'));
|
||||
}
|
||||
if ($this->_isSiteAdmin() && $results[0]['Event']['orgc_id'] !== $this->Auth->user('org_id')) {
|
||||
$this->Flash->info(__('You are currently logged in as a site administrator and editing an event not belonging to your organisation, which goes against the sharing model of MISP. Please only use this as a last resort and use normal user account for day to day work.'));
|
||||
}
|
||||
$this->__viewUI($event, $continue, $fromEvent);
|
||||
}
|
||||
}
|
||||
|
@ -1758,9 +1758,9 @@ class EventsController extends AppController
|
|||
foreach ($this->Event->analysisLevels as $key => $value) {
|
||||
$info['analysis'][$key] = array('key' => $value, 'desc' => $this->Event->analysisDescriptions[$key]['formdesc']);
|
||||
}
|
||||
if (!$this->_isRest()) {
|
||||
$this->Flash->info(__('The event created will be visible to the organisations having an account on this platform, but not synchronised to other MISP instances until it is published.'));
|
||||
}
|
||||
if (!$this->_isRest()) {
|
||||
$this->Flash->info(__('The event created will be visible to the organisations having an account on this platform, but not synchronised to other MISP instances until it is published.'));
|
||||
}
|
||||
$this->set('info', $info);
|
||||
$this->set('analysisDescriptions', $this->Event->analysisDescriptions);
|
||||
$this->set('analysisLevels', $this->Event->analysisLevels);
|
||||
|
@ -2024,7 +2024,7 @@ class EventsController extends AppController
|
|||
}
|
||||
return $this->RestResponse->saveFailResponse('Events', 'edit', $id, $errors, $this->response->type());
|
||||
} else {
|
||||
$this->set(array('message' => $message,'_serialize' => array('message'))); // $this->Event->validationErrors
|
||||
$this->set(array('message' => $message,'_serialize' => array('message'))); // $this->Event->validationErrors
|
||||
$this->render('edit');
|
||||
}
|
||||
return false;
|
||||
|
@ -2089,7 +2089,7 @@ class EventsController extends AppController
|
|||
foreach ($this->Event->analysisLevels as $key => $value) {
|
||||
$info['analysis'][$key] = array('key' => $value, 'desc' => $this->Event->analysisDescriptions[$key]['formdesc']);
|
||||
}
|
||||
$this->set('analysisLevels', $this->Event->analysisLevels);
|
||||
$this->set('analysisLevels', $this->Event->analysisLevels);
|
||||
|
||||
$this->set('info', $info);
|
||||
$this->set('eventDescriptions', $this->Event->fieldDescriptions);
|
||||
|
@ -2717,7 +2717,7 @@ class EventsController extends AppController
|
|||
if ($format != 'snort' && $format != 'suricata') {
|
||||
$format = 'suricata'; // default format
|
||||
}
|
||||
$this->response->type('txt'); // set the content type
|
||||
$this->response->type('txt'); // set the content type
|
||||
$filename = 'misp.' . $format . '.rules';
|
||||
if ($id) {
|
||||
$filename = 'misp.' . $format . '.event' . $id . '.rules';
|
||||
|
@ -2783,7 +2783,7 @@ class EventsController extends AppController
|
|||
if ($last) {
|
||||
$last = $this->Event->resolveTimeDelta($last);
|
||||
}
|
||||
$this->response->type('txt'); // set the content type
|
||||
$this->response->type('txt'); // set the content type
|
||||
$this->header('Content-Disposition: download; filename="misp.' . $type . '.rules"');
|
||||
$this->layout = 'text/default';
|
||||
if ($key != 'download') {
|
||||
|
@ -2879,12 +2879,12 @@ class EventsController extends AppController
|
|||
$fileAccessTool = new FileAccessTool();
|
||||
$iocData = $fileAccessTool->readFromFile($this->data['Event']['submittedioc']['tmp_name'], $this->data['Event']['submittedioc']['size']);
|
||||
|
||||
// write
|
||||
$attachments_dir = Configure::read('MISP.attachments_dir');
|
||||
// write
|
||||
$attachments_dir = Configure::read('MISP.attachments_dir');
|
||||
if (empty($attachments_dir)) {
|
||||
$attachments_dir = $this->Event->getDefaultAttachments_dir();
|
||||
}
|
||||
$rootDir = $attachments_dir . DS . $id . DS;
|
||||
$attachments_dir = $this->Event->getDefaultAttachments_dir();
|
||||
}
|
||||
$rootDir = $attachments_dir . DS . $id . DS;
|
||||
App::uses('Folder', 'Utility');
|
||||
$dir = new Folder($rootDir . 'ioc', true);
|
||||
$destPath = $rootDir . 'ioc';
|
||||
|
@ -3136,7 +3136,7 @@ class EventsController extends AppController
|
|||
{
|
||||
// return a downloadable text file called misp.openIOC.<eventId>.ioc for individual events
|
||||
// TODO implement mass download of all events - maybe in a zip file?
|
||||
$this->response->type('text'); // set the content type
|
||||
$this->response->type('text'); // set the content type
|
||||
if ($eventid == null) {
|
||||
throw new Exception(__('Not yet implemented'));
|
||||
}
|
||||
|
@ -3876,7 +3876,7 @@ class EventsController extends AppController
|
|||
$returnType = 'json';
|
||||
} else {
|
||||
$returnType = 'xml';
|
||||
$this->response->type('xml'); // set the content type
|
||||
$this->response->type('xml'); // set the content type
|
||||
$this->layout = 'xml/default';
|
||||
}
|
||||
$result = $this->Event->stix($id, $tags, $withAttachments, $this->Auth->user(), $returnType, $from, $to, $last);
|
||||
|
@ -4743,7 +4743,7 @@ class EventsController extends AppController
|
|||
$this->set('tags', $tagNames);
|
||||
$this->paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'order' => array(
|
||||
'Event.timestamp' => 'DESC'
|
||||
),
|
||||
|
@ -5334,7 +5334,7 @@ class EventsController extends AppController
|
|||
throw new NotFoundException(__('Invalid event.'));
|
||||
}
|
||||
$event = $this->Event->find('first', $eventFindParams);
|
||||
if (empty($event) || (!$this->_isSiteAdmin() && $event['Event']['orgc_id'] != $this->Auth->user('org_id'))) {
|
||||
if (empty($event) || (!$this->_isSiteAdmin() && $event['Event']['orgc_id'] != $this->Auth->user('org_id'))) {
|
||||
throw new NotFoundException(__('Invalid event.'));
|
||||
}
|
||||
$eventId = $event['Event']['id'];
|
||||
|
@ -5342,8 +5342,8 @@ class EventsController extends AppController
|
|||
$fileName = $this->request['data']['SelectedData']['mactime_file_name'];
|
||||
$fileData = $this->request['data']['SelectedData']['mactime_file_content'];
|
||||
$object = array();
|
||||
$data = json_decode($this->request['data']['SelectedData']['mactime_data'], true);
|
||||
$firstObject = 1;
|
||||
$data = json_decode($this->request['data']['SelectedData']['mactime_data'], true);
|
||||
$firstObject = 1;
|
||||
foreach ($data as $objectData) {
|
||||
$object['Object'] = array(
|
||||
'name' => 'mactime-timeline-analysis',
|
||||
|
|
|
@ -7,7 +7,7 @@ class FavouriteTagsController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'order' => array(
|
||||
'FavouriteTag.id' => 'DESC'
|
||||
),
|
||||
|
|
|
@ -4,7 +4,7 @@ App::uses('Xml', 'Utility');
|
|||
|
||||
class FeedsController extends AppController
|
||||
{
|
||||
public $components = array('Security' ,'RequestHandler'); // XXX ACL component
|
||||
public $components = array('Security' ,'RequestHandler'); // XXX ACL component
|
||||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
|
|
|
@ -7,7 +7,7 @@ class GalaxiesController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'contain' => array(
|
||||
|
||||
),
|
||||
|
|
|
@ -7,7 +7,7 @@ class GalaxyClustersController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'recursive' => -1,
|
||||
'order' => array(
|
||||
'GalaxyCluster.value' => 'ASC'
|
||||
|
|
|
@ -7,7 +7,7 @@ class GalaxyElementsController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 20,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'recursive' => -1,
|
||||
'order' => array(
|
||||
'GalaxyElement.key' => 'ASC'
|
||||
|
|
|
@ -7,7 +7,7 @@ class NewsController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 5,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'order' => array(
|
||||
'News.id' => 'DESC'
|
||||
),
|
||||
|
|
|
@ -42,7 +42,7 @@ class ObjectsController extends AppController
|
|||
)
|
||||
));
|
||||
$event = $this->MispObject->Event->find('first', $eventFindParams);
|
||||
if (empty($event) || (!$this->_isSiteAdmin() && $event['Event']['orgc_id'] != $this->Auth->user('org_id'))) {
|
||||
if (empty($event) || (!$this->_isSiteAdmin() && $event['Event']['orgc_id'] != $this->Auth->user('org_id'))) {
|
||||
throw new NotFoundException(__('Invalid event.'));
|
||||
}
|
||||
$sharing_groups = array();
|
||||
|
@ -140,7 +140,7 @@ class ObjectsController extends AppController
|
|||
throw new NotFoundException(__('Invalid event.'));
|
||||
}
|
||||
$event = $this->MispObject->Event->find('first', $eventFindParams);
|
||||
if (empty($event) || (!$this->_isSiteAdmin() && $event['Event']['orgc_id'] != $this->Auth->user('org_id'))) {
|
||||
if (empty($event) || (!$this->_isSiteAdmin() && $event['Event']['orgc_id'] != $this->Auth->user('org_id'))) {
|
||||
throw new NotFoundException(__('Invalid event.'));
|
||||
}
|
||||
$eventId = $event['Event']['id'];
|
||||
|
@ -236,10 +236,10 @@ class ObjectsController extends AppController
|
|||
'conditions' => array('Object.id' => $result),
|
||||
'contain' => array('Attribute')
|
||||
));
|
||||
if (!empty($object)) {
|
||||
$object['Object']['Attribute'] = $object['Attribute'];
|
||||
unset($object['Attribute']);
|
||||
}
|
||||
if (!empty($object)) {
|
||||
$object['Object']['Attribute'] = $object['Attribute'];
|
||||
unset($object['Attribute']);
|
||||
}
|
||||
return $this->RestResponse->viewData($object, $this->response->type());
|
||||
} else {
|
||||
return $this->RestResponse->saveFailResponse('Objects', 'add', false, $error, $this->response->type());
|
||||
|
@ -330,7 +330,7 @@ class ObjectsController extends AppController
|
|||
);
|
||||
|
||||
$event = $this->MispObject->Event->find('first', $eventFindParams);
|
||||
if (empty($event) || (!$this->_isSiteAdmin() && $event['Event']['orgc_id'] != $this->Auth->user('org_id'))) {
|
||||
if (empty($event) || (!$this->_isSiteAdmin() && $event['Event']['orgc_id'] != $this->Auth->user('org_id'))) {
|
||||
throw new NotFoundException(__('Invalid object.'));
|
||||
}
|
||||
if (!$this->_isRest()) {
|
||||
|
@ -376,10 +376,10 @@ class ObjectsController extends AppController
|
|||
'conditions' => array('Object.id' => $id),
|
||||
'contain' => array('Attribute')
|
||||
));
|
||||
if (!empty($objectToSave)) {
|
||||
$objectToSave['Object']['Attribute'] = $objectToSave['Attribute'];
|
||||
unset($objectToSave['Attribute']);
|
||||
}
|
||||
if (!empty($objectToSave)) {
|
||||
$objectToSave['Object']['Attribute'] = $objectToSave['Attribute'];
|
||||
unset($objectToSave['Attribute']);
|
||||
}
|
||||
$this->MispObject->Event->unpublishEvent($object['Object']['event_id']);
|
||||
return $this->RestResponse->viewData($objectToSave, $this->response->type());
|
||||
} else {
|
||||
|
|
|
@ -19,7 +19,7 @@ class OrgBlacklistsController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'order' => array(
|
||||
'OrgBlacklist.created' => 'DESC'
|
||||
),
|
||||
|
|
|
@ -15,10 +15,10 @@ class OrganisationsController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'order' => 'LOWER(Organisation.name)'
|
||||
//'order' => array(
|
||||
// 'Organisation.name' => 'ASC'
|
||||
// 'Organisation.name' => 'ASC'
|
||||
//),
|
||||
);
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ App::uses('Xml', 'Utility');
|
|||
|
||||
class ServersController extends AppController
|
||||
{
|
||||
public $components = array('Security' ,'RequestHandler'); // XXX ACL component
|
||||
public $components = array('Security' ,'RequestHandler'); // XXX ACL component
|
||||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
|
@ -602,9 +602,9 @@ class ServersController extends AppController
|
|||
/**
|
||||
* Pull one or more events with attributes from a remote instance.
|
||||
* Set $technique to
|
||||
* full - download everything
|
||||
* incremental - only new events
|
||||
* <int> - specific id of the event to pull
|
||||
* full - download everything
|
||||
* incremental - only new events
|
||||
* <int> - specific id of the event to pull
|
||||
*/
|
||||
public function pull($id = null, $technique='full')
|
||||
{
|
||||
|
|
|
@ -347,7 +347,7 @@ class ShadowAttributesController extends AppController
|
|||
if (!$this->_isRest() && (isset($this->request->data['ShadowAttribute']['batch_import']) && $this->request->data['ShadowAttribute']['batch_import'] == 1)) {
|
||||
// make array from value field
|
||||
$attributes = explode("\n", $this->request->data['ShadowAttribute']['value']);
|
||||
$fails = ""; // will be used to keep a list of the lines that failed or succeeded
|
||||
$fails = ""; // will be used to keep a list of the lines that failed or succeeded
|
||||
$successes = "";
|
||||
// TODO loopholes
|
||||
// the value null value thing
|
||||
|
|
|
@ -17,7 +17,7 @@ class SharingGroupsController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'order' => array(
|
||||
'SharingGroup.name' => 'ASC'
|
||||
),
|
||||
|
|
|
@ -12,7 +12,7 @@ class SightingsController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'order' => array('Sighting.date_sighting' => 'DESC'),
|
||||
);
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ class TaxonomiesController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'contain' => array(
|
||||
'TaxonomyPredicate' => array(
|
||||
'fields' => array('TaxonomyPredicate.id'),
|
||||
|
|
|
@ -7,7 +7,7 @@ class WarninglistsController extends AppController
|
|||
|
||||
public $paginate = array(
|
||||
'limit' => 60,
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'maxLimit' => 9999, // LATER we will bump here on a problem once we have more than 9999 events <- no we won't, this is the max a user van view/page.
|
||||
'contain' => array(
|
||||
'WarninglistType'
|
||||
),
|
||||
|
|
|
@ -229,16 +229,16 @@ class AppModel extends Model
|
|||
break;
|
||||
case 'addSightings':
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS sightings (
|
||||
id int(11) NOT NULL AUTO_INCREMENT,
|
||||
attribute_id int(11) NOT NULL,
|
||||
event_id int(11) NOT NULL,
|
||||
org_id int(11) NOT NULL,
|
||||
date_sighting bigint(20) NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
INDEX attribute_id (attribute_id),
|
||||
INDEX event_id (event_id),
|
||||
INDEX org_id (org_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
id int(11) NOT NULL AUTO_INCREMENT,
|
||||
attribute_id int(11) NOT NULL,
|
||||
event_id int(11) NOT NULL,
|
||||
org_id int(11) NOT NULL,
|
||||
date_sighting bigint(20) NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
INDEX attribute_id (attribute_id),
|
||||
INDEX event_id (event_id),
|
||||
INDEX org_id (org_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
break;
|
||||
case 'makeAttributeUUIDsUnique':
|
||||
$this->__dropIndex('attributes', 'uuid');
|
||||
|
@ -270,31 +270,31 @@ class AppModel extends Model
|
|||
$sqlArray[] = 'ALTER TABLE `logs` MODIFY `change` text COLLATE utf8_bin NOT NULL;';
|
||||
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `taxonomies` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`namespace` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`description` text COLLATE utf8_bin NOT NULL,
|
||||
`version` int(11) NOT NULL,
|
||||
`enabled` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`namespace` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`description` text COLLATE utf8_bin NOT NULL,
|
||||
`version` int(11) NOT NULL,
|
||||
`enabled` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `taxonomy_entries` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`taxonomy_predicate_id` int(11) NOT NULL,
|
||||
`value` text COLLATE utf8_bin NOT NULL,
|
||||
`expanded` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `taxonomy_predicate_id` (`taxonomy_predicate_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`taxonomy_predicate_id` int(11) NOT NULL,
|
||||
`value` text COLLATE utf8_bin NOT NULL,
|
||||
`expanded` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `taxonomy_predicate_id` (`taxonomy_predicate_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `taxonomy_predicates` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`taxonomy_id` int(11) NOT NULL,
|
||||
`value` text COLLATE utf8_bin NOT NULL,
|
||||
`expanded` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `taxonomy_id` (`taxonomy_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`taxonomy_id` int(11) NOT NULL,
|
||||
`value` text COLLATE utf8_bin NOT NULL,
|
||||
`expanded` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `taxonomy_id` (`taxonomy_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
|
||||
$sqlArray[] = 'ALTER TABLE `jobs` ADD `org` text COLLATE utf8_bin NOT NULL;';
|
||||
|
||||
|
@ -358,70 +358,70 @@ class AppModel extends Model
|
|||
break;
|
||||
case 'adminTable':
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `admin_settings` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`setting` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`value` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`setting` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`value` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
$sqlArray[] = "INSERT INTO `admin_settings` (`setting`, `value`) VALUES ('db_version', '2.4.0');";
|
||||
break;
|
||||
case '2.4.18':
|
||||
$sqlArray[] = "ALTER TABLE `users` ADD `current_login` INT(11) DEFAULT 0;";
|
||||
$sqlArray[] = "ALTER TABLE `users` ADD `last_login` INT(11) DEFAULT 0;";
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `event_delegations` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`org_id` int(11) NOT NULL,
|
||||
`requester_org_id` int(11) NOT NULL,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`message` text,
|
||||
`distribution` tinyint(4) NOT NULL DEFAULT '-1',
|
||||
`sharing_group_id` int(11),
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `org_id` (`org_id`),
|
||||
KEY `event_id` (`event_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`org_id` int(11) NOT NULL,
|
||||
`requester_org_id` int(11) NOT NULL,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`message` text,
|
||||
`distribution` tinyint(4) NOT NULL DEFAULT '-1',
|
||||
`sharing_group_id` int(11),
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `org_id` (`org_id`),
|
||||
KEY `event_id` (`event_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
break;
|
||||
case '2.4.19':
|
||||
$sqlArray[] = "DELETE FROM `shadow_attributes` WHERE `event_uuid` = '';";
|
||||
break;
|
||||
case '2.4.20':
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `shadow_attribute_correlations` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`org_id` int(11) NOT NULL,
|
||||
`value` text NOT NULL,
|
||||
`distribution` tinyint(4) NOT NULL,
|
||||
`a_distribution` tinyint(4) NOT NULL,
|
||||
`sharing_group_id` int(11),
|
||||
`a_sharing_group_id` int(11),
|
||||
`attribute_id` int(11) NOT NULL,
|
||||
`1_shadow_attribute_id` int(11) NOT NULL,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`1_event_id` int(11) NOT NULL,
|
||||
`info` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `org_id` (`org_id`),
|
||||
KEY `attribute_id` (`attribute_id`),
|
||||
KEY `a_sharing_group_id` (`a_sharing_group_id`),
|
||||
KEY `event_id` (`event_id`),
|
||||
KEY `1_event_id` (`event_id`),
|
||||
KEY `sharing_group_id` (`sharing_group_id`),
|
||||
KEY `1_shadow_attribute_id` (`1_shadow_attribute_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`org_id` int(11) NOT NULL,
|
||||
`value` text NOT NULL,
|
||||
`distribution` tinyint(4) NOT NULL,
|
||||
`a_distribution` tinyint(4) NOT NULL,
|
||||
`sharing_group_id` int(11),
|
||||
`a_sharing_group_id` int(11),
|
||||
`attribute_id` int(11) NOT NULL,
|
||||
`1_shadow_attribute_id` int(11) NOT NULL,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`1_event_id` int(11) NOT NULL,
|
||||
`info` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `org_id` (`org_id`),
|
||||
KEY `attribute_id` (`attribute_id`),
|
||||
KEY `a_sharing_group_id` (`a_sharing_group_id`),
|
||||
KEY `event_id` (`event_id`),
|
||||
KEY `1_event_id` (`event_id`),
|
||||
KEY `sharing_group_id` (`sharing_group_id`),
|
||||
KEY `1_shadow_attribute_id` (`1_shadow_attribute_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
break;
|
||||
case '2.4.25':
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `feeds` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`provider` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`url` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`rules` text COLLATE utf8_bin NOT NULL,
|
||||
`enabled` BOOLEAN NOT NULL,
|
||||
`distribution` tinyint(4) NOT NULL,
|
||||
`sharing_group_id` int(11) NOT NULL,
|
||||
`tag_id` int(11) NOT NULL,
|
||||
`default` tinyint(1) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`provider` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`url` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`rules` text COLLATE utf8_bin NOT NULL,
|
||||
`enabled` BOOLEAN NOT NULL,
|
||||
`distribution` tinyint(4) NOT NULL,
|
||||
`sharing_group_id` int(11) NOT NULL,
|
||||
`tag_id` int(11) NOT NULL,
|
||||
`default` tinyint(1) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
break;
|
||||
case '2.4.32':
|
||||
$sqlArray[] = "ALTER TABLE `roles` ADD `perm_tag_editor` tinyint(1) NOT NULL DEFAULT 0;";
|
||||
|
@ -432,27 +432,27 @@ class AppModel extends Model
|
|||
break;
|
||||
case '2.4.38':
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `warninglists` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`type` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT 'string',
|
||||
`description` text COLLATE utf8_bin NOT NULL,
|
||||
`version` int(11) NOT NULL DEFAULT 1,
|
||||
`enabled` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`warninglist_entry_count` int(11) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`type` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT 'string',
|
||||
`description` text COLLATE utf8_bin NOT NULL,
|
||||
`version` int(11) NOT NULL DEFAULT 1,
|
||||
`enabled` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`warninglist_entry_count` int(11) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `warninglist_entries` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`value` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
|
||||
`warninglist_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`value` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
|
||||
`warninglist_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `warninglist_types` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`type` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`warninglist_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`type` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`warninglist_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
break;
|
||||
case '2.4.39':
|
||||
$sqlArray[] = "ALTER TABLE `users` ADD `certif_public` longtext COLLATE utf8_bin AFTER `gpgkey`;";
|
||||
|
@ -460,13 +460,13 @@ class AppModel extends Model
|
|||
break;
|
||||
case '2.4.40':
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `favourite_tags` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`tag_id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `user_id` (`user_id`),
|
||||
INDEX `tag_id` (`tag_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`tag_id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `user_id` (`user_id`),
|
||||
INDEX `tag_id` (`tag_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
break;
|
||||
case '2.4.42':
|
||||
$sqlArray[] = "ALTER TABLE `attributes` ADD `deleted` tinyint(1) NOT NULL DEFAULT 0;";
|
||||
|
@ -478,13 +478,13 @@ class AppModel extends Model
|
|||
$sqlArray[] = 'ALTER TABLE `users` CHANGE `newsread` `newsread` int(11) unsigned;';
|
||||
$sqlArray[] = 'UPDATE `users` SET `newsread` = 0;';
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `news` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`message` text COLLATE utf8_bin NOT NULL,
|
||||
`title` text COLLATE utf8_bin NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`date_created` int(11) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`message` text COLLATE utf8_bin NOT NULL,
|
||||
`title` text COLLATE utf8_bin NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`date_created` int(11) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
break;
|
||||
case '2.4.49':
|
||||
// table: users
|
||||
|
@ -557,14 +557,14 @@ class AppModel extends Model
|
|||
case '2.4.56':
|
||||
$sqlArray[] =
|
||||
"CREATE TABLE IF NOT EXISTS galaxies (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`uuid` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`name` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`type` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`description` text COLLATE utf8_bin NOT NULL,
|
||||
`version` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`uuid` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`name` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`type` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`description` text COLLATE utf8_bin NOT NULL,
|
||||
`version` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
|
||||
$this->__addIndex('galaxies', 'name');
|
||||
$this->__addIndex('galaxies', 'uuid');
|
||||
|
@ -572,17 +572,17 @@ class AppModel extends Model
|
|||
|
||||
$sqlArray[] =
|
||||
"CREATE TABLE IF NOT EXISTS galaxy_clusters (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`uuid` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`type` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`value` text COLLATE utf8_bin NOT NULL,
|
||||
`tag_name` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`description` text COLLATE utf8_bin NOT NULL,
|
||||
`galaxy_id` int(11) NOT NULL,
|
||||
`source` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`authors` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`uuid` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`type` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`value` text COLLATE utf8_bin NOT NULL,
|
||||
`tag_name` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`description` text COLLATE utf8_bin NOT NULL,
|
||||
`galaxy_id` int(11) NOT NULL,
|
||||
`source` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`authors` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
|
||||
$this->__addIndex('galaxy_clusters', 'value', 255);
|
||||
$this->__addIndex('galaxy_clusters', 'tag_name');
|
||||
|
@ -591,26 +591,26 @@ class AppModel extends Model
|
|||
|
||||
$sqlArray[] =
|
||||
"CREATE TABLE IF NOT EXISTS galaxy_elements (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`galaxy_cluster_id` int(11) NOT NULL,
|
||||
`key` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`value` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`galaxy_cluster_id` int(11) NOT NULL,
|
||||
`key` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`value` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
|
||||
$this->__addIndex('galaxy_elements', 'key');
|
||||
$this->__addIndex('galaxy_elements', 'value', 255);
|
||||
|
||||
$sqlArray[] =
|
||||
"CREATE TABLE IF NOT EXISTS galaxy_reference (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`galaxy_cluster_id` int(11) NOT NULL,
|
||||
`referenced_galaxy_cluster_id` int(11) NOT NULL,
|
||||
`referenced_galaxy_cluster_uuid` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`referenced_galaxy_cluster_type` text COLLATE utf8_bin NOT NULL,
|
||||
`referenced_galaxy_cluster_value` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`galaxy_cluster_id` int(11) NOT NULL,
|
||||
`referenced_galaxy_cluster_id` int(11) NOT NULL,
|
||||
`referenced_galaxy_cluster_uuid` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`referenced_galaxy_cluster_type` text COLLATE utf8_bin NOT NULL,
|
||||
`referenced_galaxy_cluster_value` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;";
|
||||
|
||||
$this->__addIndex('galaxy_reference', 'galaxy_cluster_id');
|
||||
$this->__addIndex('galaxy_reference', 'referenced_galaxy_cluster_id');
|
||||
|
@ -636,23 +636,23 @@ class AppModel extends Model
|
|||
case '2.4.60':
|
||||
if ($dataSource == 'Database/Mysql') {
|
||||
$sqlArray[] = 'CREATE TABLE IF NOT EXISTS `attribute_tags` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`attribute_id` int(11) NOT NULL,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`tag_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;';
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`attribute_id` int(11) NOT NULL,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`tag_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;';
|
||||
$sqlArray[] = 'ALTER TABLE `attribute_tags` ADD INDEX `attribute_id` (`attribute_id`);';
|
||||
$sqlArray[] = 'ALTER TABLE `attribute_tags` ADD INDEX `event_id` (`event_id`);';
|
||||
$sqlArray[] = 'ALTER TABLE `attribute_tags` ADD INDEX `tag_id` (`tag_id`);';
|
||||
} elseif ($dataSource == 'Database/Postgres') {
|
||||
$sqlArray[] = 'CREATE TABLE IF NOT EXISTS attribute_tags (
|
||||
id bigserial NOT NULL,
|
||||
attribute_id bigint NOT NULL,
|
||||
event_id bigint NOT NULL,
|
||||
tag_id bigint NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
);';
|
||||
id bigserial NOT NULL,
|
||||
attribute_id bigint NOT NULL,
|
||||
event_id bigint NOT NULL,
|
||||
tag_id bigint NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
);';
|
||||
$sqlArray[] = 'CREATE INDEX idx_attribute_tags_attribute_id ON attribute_tags (attribute_id);';
|
||||
$sqlArray[] = 'CREATE INDEX idx_attribute_tags_event_id ON attribute_tags (event_id);';
|
||||
$sqlArray[] = 'CREATE INDEX idx_attribute_tags_tag_id ON attribute_tags (tag_id);';
|
||||
|
@ -718,26 +718,26 @@ class AppModel extends Model
|
|||
case '2.4.68':
|
||||
$sqlArray[] = 'ALTER TABLE events CHANGE attribute_count attribute_count int(11) unsigned DEFAULT 0;';
|
||||
$sqlArray[] = 'CREATE TABLE IF NOT EXISTS `event_blacklists` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`event_uuid` varchar(40) COLLATE utf8_bin NOT NULL,
|
||||
`created` datetime NOT NULL,
|
||||
`event_info` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
|
||||
`comment` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`event_orgc` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`event_uuid` varchar(40) COLLATE utf8_bin NOT NULL,
|
||||
`created` datetime NOT NULL,
|
||||
`event_info` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
|
||||
`comment` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`event_orgc` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
||||
$indexArray[] = array('event_blacklists', 'event_uuid');
|
||||
$indexArray[] = array('event_blacklists', 'event_orgc');
|
||||
$sqlArray[] = 'CREATE TABLE IF NOT EXISTS `org_blacklists` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`org_uuid` varchar(40) COLLATE utf8_bin NOT NULL,
|
||||
`created` datetime NOT NULL,
|
||||
`org_name` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`comment` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `org_uuid` (`org_uuid`),
|
||||
INDEX `org_name` (`org_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`org_uuid` varchar(40) COLLATE utf8_bin NOT NULL,
|
||||
`created` datetime NOT NULL,
|
||||
`org_name` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`comment` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `org_uuid` (`org_uuid`),
|
||||
INDEX `org_name` (`org_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
||||
$indexArray[] = array('org_blacklists', 'org_uuid');
|
||||
$indexArray[] = array('org_blacklists', 'org_name');
|
||||
$sqlArray[] = "ALTER TABLE shadow_attributes CHANGE proposal_to_delete proposal_to_delete BOOLEAN DEFAULT 0";
|
||||
|
@ -777,100 +777,100 @@ class AppModel extends Model
|
|||
break;
|
||||
case '2.4.80':
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS objects (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`meta-category` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`description` text CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`template_uuid` varchar(40) COLLATE utf8_bin DEFAULT NULL,
|
||||
`template_version` int(11) NOT NULL,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`uuid` varchar(40) COLLATE utf8_bin DEFAULT NULL,
|
||||
`timestamp` int(11) NOT NULL DEFAULT 0,
|
||||
`distribution` tinyint(4) NOT NULL DEFAULT 0,
|
||||
`sharing_group_id` int(11),
|
||||
`comment` text COLLATE utf8_bin NOT NULL,
|
||||
`deleted` TINYINT(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `name` (`name`),
|
||||
INDEX `template_uuid` (`template_uuid`),
|
||||
INDEX `template_version` (`template_version`),
|
||||
INDEX `meta-category` (`meta-category`),
|
||||
INDEX `event_id` (`event_id`),
|
||||
INDEX `uuid` (`uuid`),
|
||||
INDEX `timestamp` (`timestamp`),
|
||||
INDEX `distribution` (`distribution`),
|
||||
INDEX `sharing_group_id` (`sharing_group_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`meta-category` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`description` text CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`template_uuid` varchar(40) COLLATE utf8_bin DEFAULT NULL,
|
||||
`template_version` int(11) NOT NULL,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`uuid` varchar(40) COLLATE utf8_bin DEFAULT NULL,
|
||||
`timestamp` int(11) NOT NULL DEFAULT 0,
|
||||
`distribution` tinyint(4) NOT NULL DEFAULT 0,
|
||||
`sharing_group_id` int(11),
|
||||
`comment` text COLLATE utf8_bin NOT NULL,
|
||||
`deleted` TINYINT(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `name` (`name`),
|
||||
INDEX `template_uuid` (`template_uuid`),
|
||||
INDEX `template_version` (`template_version`),
|
||||
INDEX `meta-category` (`meta-category`),
|
||||
INDEX `event_id` (`event_id`),
|
||||
INDEX `uuid` (`uuid`),
|
||||
INDEX `timestamp` (`timestamp`),
|
||||
INDEX `distribution` (`distribution`),
|
||||
INDEX `sharing_group_id` (`sharing_group_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS object_references (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`uuid` varchar(40) COLLATE utf8_bin DEFAULT NULL,
|
||||
`timestamp` int(11) NOT NULL DEFAULT 0,
|
||||
`object_id` int(11) NOT NULL,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`object_uuid` varchar(40) COLLATE utf8_bin DEFAULT NULL,
|
||||
`referenced_uuid` varchar(40) COLLATE utf8_bin DEFAULT NULL,
|
||||
`referenced_id` int(11) NOT NULL,
|
||||
`referenced_type` int(11) NOT NULL DEFAULT 0,
|
||||
`relationship_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`comment` text COLLATE utf8_bin NOT NULL,
|
||||
`deleted` TINYINT(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `object_uuid` (`object_uuid`),
|
||||
INDEX `referenced_uuid` (`referenced_uuid`),
|
||||
INDEX `timestamp` (`timestamp`),
|
||||
INDEX `object_id` (`object_id`),
|
||||
INDEX `referenced_id` (`referenced_id`),
|
||||
INDEX `relationship_type` (`relationship_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`uuid` varchar(40) COLLATE utf8_bin DEFAULT NULL,
|
||||
`timestamp` int(11) NOT NULL DEFAULT 0,
|
||||
`object_id` int(11) NOT NULL,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`object_uuid` varchar(40) COLLATE utf8_bin DEFAULT NULL,
|
||||
`referenced_uuid` varchar(40) COLLATE utf8_bin DEFAULT NULL,
|
||||
`referenced_id` int(11) NOT NULL,
|
||||
`referenced_type` int(11) NOT NULL DEFAULT 0,
|
||||
`relationship_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`comment` text COLLATE utf8_bin NOT NULL,
|
||||
`deleted` TINYINT(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `object_uuid` (`object_uuid`),
|
||||
INDEX `referenced_uuid` (`referenced_uuid`),
|
||||
INDEX `timestamp` (`timestamp`),
|
||||
INDEX `object_id` (`object_id`),
|
||||
INDEX `referenced_id` (`referenced_id`),
|
||||
INDEX `relationship_type` (`relationship_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS object_relationships (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`version` int(11) NOT NULL,
|
||||
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`description` text COLLATE utf8_bin NOT NULL,
|
||||
`format` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`version` int(11) NOT NULL,
|
||||
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`description` text COLLATE utf8_bin NOT NULL,
|
||||
`format` text COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
|
||||
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS object_templates (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`org_id` int(11) NOT NULL,
|
||||
`uuid` varchar(40) COLLATE utf8_bin DEFAULT NULL,
|
||||
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`meta-category` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`description` text COLLATE utf8_bin,
|
||||
`version` int(11) NOT NULL,
|
||||
`requirements` text COLLATE utf8_bin,
|
||||
`fixed` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`active` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `user_id` (`user_id`),
|
||||
INDEX `org_id` (`org_id`),
|
||||
INDEX `uuid` (`uuid`),
|
||||
INDEX `name` (`name`),
|
||||
INDEX `meta-category` (`meta-category`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`org_id` int(11) NOT NULL,
|
||||
`uuid` varchar(40) COLLATE utf8_bin DEFAULT NULL,
|
||||
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`meta-category` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`description` text COLLATE utf8_bin,
|
||||
`version` int(11) NOT NULL,
|
||||
`requirements` text COLLATE utf8_bin,
|
||||
`fixed` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`active` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `user_id` (`user_id`),
|
||||
INDEX `org_id` (`org_id`),
|
||||
INDEX `uuid` (`uuid`),
|
||||
INDEX `name` (`name`),
|
||||
INDEX `meta-category` (`meta-category`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS object_template_elements (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`object_template_id` int(11) NOT NULL,
|
||||
`object_relation` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`type` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`ui-priority` int(11) NOT NULL,
|
||||
`categories` text COLLATE utf8_bin,
|
||||
`sane_default` text COLLATE utf8_bin,
|
||||
`values_list` text COLLATE utf8_bin,
|
||||
`description` text COLLATE utf8_bin,
|
||||
`disable_correlation` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`multiple` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `object_relation` (`object_relation`),
|
||||
INDEX `type` (`type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`object_template_id` int(11) NOT NULL,
|
||||
`object_relation` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`type` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`ui-priority` int(11) NOT NULL,
|
||||
`categories` text COLLATE utf8_bin,
|
||||
`sane_default` text COLLATE utf8_bin,
|
||||
`values_list` text COLLATE utf8_bin,
|
||||
`description` text COLLATE utf8_bin,
|
||||
`disable_correlation` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`multiple` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `object_relation` (`object_relation`),
|
||||
INDEX `type` (`type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
|
||||
$sqlArray[] = 'ALTER TABLE `logs` CHANGE `model` `model` VARCHAR(80) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;';
|
||||
$sqlArray[] = 'ALTER TABLE `logs` CHANGE `action` `action` VARCHAR(80) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;';
|
||||
|
@ -921,11 +921,11 @@ class AppModel extends Model
|
|||
break;
|
||||
case 3:
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `fuzzy_correlate_ssdeep` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`chunk` varchar(12) NOT NULL,
|
||||
`attribute_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`chunk` varchar(12) NOT NULL,
|
||||
`attribute_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
$this->__addIndex('fuzzy_correlate_ssdeep', 'chunk');
|
||||
$this->__addIndex('fuzzy_correlate_ssdeep', 'attribute_id');
|
||||
break;
|
||||
|
@ -943,24 +943,24 @@ class AppModel extends Model
|
|||
break;
|
||||
case 7:
|
||||
$sqlArray[] = 'CREATE TABLE IF NOT EXISTS `noticelists` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`expanded_name` text COLLATE utf8_unicode_ci NOT NULL,
|
||||
`ref` text COLLATE utf8_unicode_ci,
|
||||
`geographical_area` varchar(255) COLLATE utf8_unicode_ci,
|
||||
`version` int(11) NOT NULL DEFAULT 1,
|
||||
`enabled` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `name` (`name`),
|
||||
INDEX `geographical_area` (`geographical_area`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;';
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`expanded_name` text COLLATE utf8_unicode_ci NOT NULL,
|
||||
`ref` text COLLATE utf8_unicode_ci,
|
||||
`geographical_area` varchar(255) COLLATE utf8_unicode_ci,
|
||||
`version` int(11) NOT NULL DEFAULT 1,
|
||||
`enabled` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `name` (`name`),
|
||||
INDEX `geographical_area` (`geographical_area`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;';
|
||||
$sqlArray[] = 'CREATE TABLE IF NOT EXISTS `noticelist_entries` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`noticelist_id` int(11) NOT NULL,
|
||||
`data` text COLLATE utf8_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `noticelist_id` (`noticelist_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;';
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`noticelist_id` int(11) NOT NULL,
|
||||
`data` text COLLATE utf8_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `noticelist_id` (`noticelist_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;';
|
||||
break;
|
||||
case 9:
|
||||
$sqlArray[] = 'ALTER TABLE galaxies ADD namespace varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT "misp";';
|
||||
|
@ -971,63 +971,63 @@ class AppModel extends Model
|
|||
break;
|
||||
case 11:
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS event_locks (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`timestamp` int(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `event_id` (`event_id`),
|
||||
INDEX `user_id` (`user_id`),
|
||||
INDEX `timestamp` (`timestamp`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`timestamp` int(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `event_id` (`event_id`),
|
||||
INDEX `user_id` (`user_id`),
|
||||
INDEX `timestamp` (`timestamp`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
break;
|
||||
case 12:
|
||||
$sqlArray[] = "ALTER TABLE `servers` ADD `skip_proxy` tinyint(1) NOT NULL DEFAULT 0;";
|
||||
break;
|
||||
case 13:
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS event_graph (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`org_id` int(11) NOT NULL,
|
||||
`timestamp` int(11) NOT NULL DEFAULT 0,
|
||||
`network_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`network_json` MEDIUMTEXT NOT NULL,
|
||||
`preview_img` MEDIUMTEXT,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `event_id` (`event_id`),
|
||||
INDEX `user_id` (`user_id`),
|
||||
INDEX `org_id` (`org_id`),
|
||||
INDEX `timestamp` (`timestamp`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`org_id` int(11) NOT NULL,
|
||||
`timestamp` int(11) NOT NULL DEFAULT 0,
|
||||
`network_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`network_json` MEDIUMTEXT NOT NULL,
|
||||
`preview_img` MEDIUMTEXT,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `event_id` (`event_id`),
|
||||
INDEX `user_id` (`user_id`),
|
||||
INDEX `org_id` (`org_id`),
|
||||
INDEX `timestamp` (`timestamp`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
break;
|
||||
case 14:
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS `user_settings` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`setting` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`value` text COLLATE utf8_bin NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
INDEX `setting` (`setting`),
|
||||
INDEX `user_id` (`user_id`),
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`setting` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||
`value` text COLLATE utf8_bin NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
INDEX `setting` (`setting`),
|
||||
INDEX `user_id` (`user_id`),
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
break;
|
||||
case 15:
|
||||
$sqlArray[] = "CREATE TABLE IF NOT EXISTS event_graph (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`org_id` int(11) NOT NULL,
|
||||
`timestamp` int(11) NOT NULL DEFAULT 0,
|
||||
`network_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`network_json` MEDIUMTEXT NOT NULL,
|
||||
`preview_img` MEDIUMTEXT,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `event_id` (`event_id`),
|
||||
INDEX `user_id` (`user_id`),
|
||||
INDEX `org_id` (`org_id`),
|
||||
INDEX `timestamp` (`timestamp`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`event_id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`org_id` int(11) NOT NULL,
|
||||
`timestamp` int(11) NOT NULL DEFAULT 0,
|
||||
`network_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
||||
`network_json` MEDIUMTEXT NOT NULL,
|
||||
`preview_img` MEDIUMTEXT,
|
||||
PRIMARY KEY (id),
|
||||
INDEX `event_id` (`event_id`),
|
||||
INDEX `user_id` (`user_id`),
|
||||
INDEX `org_id` (`org_id`),
|
||||
INDEX `timestamp` (`timestamp`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
|
||||
break;
|
||||
case 18:
|
||||
$sqlArray[] = 'ALTER TABLE `taxonomy_predicates` ADD COLUMN description text CHARACTER SET UTF8 collate utf8_bin;';
|
||||
|
@ -1932,10 +1932,10 @@ class AppModel extends Model
|
|||
return true;
|
||||
}
|
||||
|
||||
public function generateRandomFileName()
|
||||
{
|
||||
return (new RandomTool())->random_str(false, 12);
|
||||
}
|
||||
public function generateRandomFileName()
|
||||
{
|
||||
return (new RandomTool())->random_str(false, 12);
|
||||
}
|
||||
|
||||
public function resolveTimeDelta($delta)
|
||||
{
|
||||
|
|
|
@ -10,10 +10,10 @@ class Attribute extends AppModel
|
|||
{
|
||||
public $combinedKeys = array('event_id', 'category', 'type');
|
||||
|
||||
public $name = 'Attribute'; // TODO general
|
||||
public $name = 'Attribute'; // TODO general
|
||||
|
||||
public $actsAs = array(
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'userModel' => 'User',
|
||||
'userKey' => 'user_id',
|
||||
'change' => 'full'),
|
||||
|
@ -1466,7 +1466,7 @@ class Attribute extends AppModel
|
|||
{
|
||||
// build the list of composite Attribute.type dynamically by checking if type contains a |
|
||||
// default composite types
|
||||
$compositeTypes = array('malware-sample'); // TODO hardcoded composite
|
||||
$compositeTypes = array('malware-sample'); // TODO hardcoded composite
|
||||
// dynamically generated list
|
||||
foreach (array_keys($this->typeDefinitions) as $type) {
|
||||
$pieces = explode('|', $type);
|
||||
|
@ -1601,11 +1601,11 @@ class Attribute extends AppModel
|
|||
} else {
|
||||
// Plebian filesystem operations
|
||||
$rootDir = $attachments_dir . DS . $attribute['event_id'];
|
||||
$dir = new Folder($rootDir, true); // create directory structure
|
||||
$dir = new Folder($rootDir, true); // create directory structure
|
||||
$destpath = $rootDir . DS . $attribute['id'];
|
||||
$file = new File($destpath, true); // create the file
|
||||
$decodedData = base64_decode($attribute['data']); // decode
|
||||
if ($file->write($decodedData)) { // save the data
|
||||
$file = new File($destpath, true); // create the file
|
||||
$decodedData = base64_decode($attribute['data']); // decode
|
||||
if ($file->write($decodedData)) { // save the data
|
||||
return true;
|
||||
} else {
|
||||
// error
|
||||
|
@ -3666,11 +3666,11 @@ class Attribute extends AppModel
|
|||
return 'Invalid sharing group choice.';
|
||||
}
|
||||
} else if (!isset($attribute['distribution'])) {
|
||||
$attribute['distribution'] = Configure::read('MISP.default_attribute_distribution');
|
||||
if ($attribute['distribution'] == 'event') {
|
||||
$attribute['distribution'] = 5;
|
||||
}
|
||||
}
|
||||
$attribute['distribution'] = Configure::read('MISP.default_attribute_distribution');
|
||||
if ($attribute['distribution'] == 'event') {
|
||||
$attribute['distribution'] = 5;
|
||||
}
|
||||
}
|
||||
$fieldList = array(
|
||||
'event_id',
|
||||
'category',
|
||||
|
|
|
@ -299,7 +299,7 @@ class Event extends AppModel
|
|||
'Attribute' => array(
|
||||
'className' => 'Attribute',
|
||||
'foreignKey' => 'event_id',
|
||||
'dependent' => true, // cascade deletes
|
||||
'dependent' => true, // cascade deletes
|
||||
'conditions' => '',
|
||||
'fields' => '',
|
||||
'order' => array('Attribute.category ASC', 'Attribute.type ASC'),
|
||||
|
@ -312,7 +312,7 @@ class Event extends AppModel
|
|||
'ShadowAttribute' => array(
|
||||
'className' => 'ShadowAttribute',
|
||||
'foreignKey' => 'event_id',
|
||||
'dependent' => true, // cascade deletes
|
||||
'dependent' => true, // cascade deletes
|
||||
'conditions' => '',
|
||||
'fields' => '',
|
||||
'order' => array('ShadowAttribute.old_id DESC', 'ShadowAttribute.old_id DESC'),
|
||||
|
@ -982,7 +982,7 @@ class Event extends AppModel
|
|||
private function __handleRestfulEventToServerResponse($response, &$newLocation, &$newTextBody)
|
||||
{
|
||||
switch ($response->code) {
|
||||
case '200': // 200 (OK) + entity-action-result
|
||||
case '200': // 200 (OK) + entity-action-result
|
||||
if ($response->isOk()) {
|
||||
$newTextBody = $response->body();
|
||||
return true;
|
||||
|
@ -1253,7 +1253,7 @@ class Event extends AppModel
|
|||
)
|
||||
);
|
||||
if ($thread_id) {
|
||||
$relations[] = array(
|
||||
$relations[] = array(
|
||||
'table' => 'posts',
|
||||
'foreign_key' => 'thread_id',
|
||||
'value' => $thread_id
|
||||
|
@ -2801,7 +2801,7 @@ class Event extends AppModel
|
|||
if (!empty($bodyTempOther)) {
|
||||
$body .= "\n";
|
||||
}
|
||||
$body .= $bodyTempOther; // append the 'other' attribute types to the bottom.
|
||||
$body .= $bodyTempOther; // append the 'other' attribute types to the bottom.
|
||||
$body .= '==============================================' . "\n";
|
||||
return $body;
|
||||
}
|
||||
|
@ -2919,7 +2919,7 @@ class Event extends AppModel
|
|||
}
|
||||
}
|
||||
$bodyevent .= "\n";
|
||||
$bodyevent .= $bodyTempOther; // append the 'other' attribute types to the bottom.
|
||||
$bodyevent .= $bodyTempOther; // append the 'other' attribute types to the bottom.
|
||||
return array($bodyevent, $body);
|
||||
}
|
||||
|
||||
|
@ -3127,7 +3127,7 @@ class Event extends AppModel
|
|||
// Workaround for different structure in XML/array than what CakePHP expects
|
||||
$data = $this->cleanupEventArrayFromXML($data);
|
||||
// the event_id field is not set (normal) so make sure no validation errors are thrown
|
||||
// LATER do this with $this->validator()->remove('event_id');
|
||||
// LATER do this with $this->validator()->remove('event_id');
|
||||
unset($this->Attribute->validate['event_id']); // otherwise gives bugs because event_id is not set
|
||||
unset($this->Attribute->validate['value']['uniqueValue']); // unset this - we are saving a new event, there are no values to compare against and event_id is not set in the attributes
|
||||
}
|
||||
|
@ -3515,49 +3515,49 @@ class Event extends AppModel
|
|||
}
|
||||
// if published -> do the actual publishing
|
||||
if ((!empty($data['Event']['published']) && 1 == $data['Event']['published'])) {
|
||||
// The edited event is from a remote server ?
|
||||
if ($passAlong) {
|
||||
$this->Server = ClassRegistry::init('Server');
|
||||
$server = $this->Server->find('first', array(
|
||||
'conditions' => array(
|
||||
'Server.id' => $passAlong
|
||||
),
|
||||
'recursive' => -1,
|
||||
'fields' => array(
|
||||
'Server.name',
|
||||
'Server.id',
|
||||
'Server.unpublish_event',
|
||||
'Server.publish_without_email'
|
||||
)
|
||||
));
|
||||
if ($server['Server']['publish_without_email'] == 0) {
|
||||
$st = "enabled";
|
||||
} else {
|
||||
$st = "disabled";
|
||||
}
|
||||
$this->Log->create();
|
||||
$this->Log->save(array(
|
||||
'org' => $user['Organisation']['name'],
|
||||
'model' => 'Event',
|
||||
'model_id' => $saveResult['Event']['id'],
|
||||
'email' => $user['email'],
|
||||
'action' => 'add',
|
||||
'user_id' => $user['id'],
|
||||
'title' => 'Event edited from Server(' . $server['Server']['id'] . ') - "' . $server['Server']['name'] . '" - Notification by mail ' . $st,
|
||||
'change' => ''
|
||||
// The edited event is from a remote server ?
|
||||
if ($passAlong) {
|
||||
$this->Server = ClassRegistry::init('Server');
|
||||
$server = $this->Server->find('first', array(
|
||||
'conditions' => array(
|
||||
'Server.id' => $passAlong
|
||||
),
|
||||
'recursive' => -1,
|
||||
'fields' => array(
|
||||
'Server.name',
|
||||
'Server.id',
|
||||
'Server.unpublish_event',
|
||||
'Server.publish_without_email'
|
||||
)
|
||||
));
|
||||
if ($server['Server']['publish_without_email'] == 0) {
|
||||
$st = "enabled";
|
||||
} else {
|
||||
$st = "disabled";
|
||||
}
|
||||
$this->Log->create();
|
||||
$this->Log->save(array(
|
||||
'org' => $user['Organisation']['name'],
|
||||
'model' => 'Event',
|
||||
'model_id' => $saveResult['Event']['id'],
|
||||
'email' => $user['email'],
|
||||
'action' => 'add',
|
||||
'user_id' => $user['id'],
|
||||
'title' => 'Event edited from Server(' . $server['Server']['id'] . ') - "' . $server['Server']['name'] . '" - Notification by mail ' . $st,
|
||||
'change' => ''
|
||||
));
|
||||
} else {
|
||||
$this->Log->create();
|
||||
$this->Log->save(array(
|
||||
'org' => $user['Organisation']['name'],
|
||||
'model' => 'Event',
|
||||
'model_id' => $saveResult['Event']['id'],
|
||||
'email' => $user['email'],
|
||||
'action' => 'add',
|
||||
'user_id' => $user['id'],
|
||||
'title' => 'Event edited (locally)',
|
||||
'change' => ''
|
||||
));
|
||||
} else {
|
||||
$this->Log->create();
|
||||
$this->Log->save(array(
|
||||
'org' => $user['Organisation']['name'],
|
||||
'model' => 'Event',
|
||||
'model_id' => $saveResult['Event']['id'],
|
||||
'email' => $user['email'],
|
||||
'action' => 'add',
|
||||
'user_id' => $user['id'],
|
||||
'title' => 'Event edited (locally)',
|
||||
'change' => ''
|
||||
));
|
||||
}
|
||||
// do the necessary actions to publish the event (email, upload,...)
|
||||
if ((true != Configure::read('MISP.disablerestalert')) && (empty($server) || $server['Server']['publish_without_email'] == 0)) {
|
||||
|
@ -5314,7 +5314,9 @@ class Event extends AppModel
|
|||
unset($temp['GalaxyCluster']['Galaxy']);
|
||||
$data['Galaxy'][count($data['Galaxy']) - 1]['GalaxyCluster'][] = $temp['GalaxyCluster'];
|
||||
}
|
||||
unset($data[$dataType . 'Tag'][$k]);
|
||||
if ($cullGalaxyTags) {
|
||||
unset($data[$dataType . 'Tag'][$k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ class EventBlacklist extends AppModel
|
|||
public $recursive = -1;
|
||||
|
||||
public $actsAs = array(
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'userModel' => 'User',
|
||||
'userKey' => 'user_id',
|
||||
'change' => 'full'),
|
||||
|
|
|
@ -28,7 +28,7 @@ class GalaxyCluster extends AppModel
|
|||
|
||||
public $hasMany = array(
|
||||
'GalaxyElement' => array('dependent' => true),
|
||||
// 'GalaxyReference'
|
||||
// 'GalaxyReference'
|
||||
);
|
||||
|
||||
public function beforeValidate($options = array())
|
||||
|
|
|
@ -149,11 +149,11 @@ class Log extends AppModel
|
|||
$condOrg = '';
|
||||
}
|
||||
$sql = 'SELECT DISTINCT EXTRACT(EPOCH FROM CAST(created AS DATE)) AS "Date",
|
||||
COUNT(id) AS count
|
||||
FROM logs
|
||||
WHERE action NOT IN (' . $condnotinaction . ')
|
||||
' . $condOrg . '
|
||||
GROUP BY "Date" ORDER BY "Date"';
|
||||
COUNT(id) AS count
|
||||
FROM logs
|
||||
WHERE action NOT IN (' . $condnotinaction . ')
|
||||
' . $condOrg . '
|
||||
GROUP BY "Date" ORDER BY "Date"';
|
||||
$validDates = $this->query($sql);
|
||||
}
|
||||
$data = array();
|
||||
|
|
|
@ -11,7 +11,7 @@ class MispObject extends AppModel
|
|||
|
||||
public $actsAs = array(
|
||||
'Containable',
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'userModel' => 'User',
|
||||
'userKey' => 'user_id',
|
||||
'change' => 'full'),
|
||||
|
@ -539,12 +539,12 @@ class MispObject extends AppModel
|
|||
$this->Event->Attribute->create();
|
||||
$newAttribute['event_id'] = $object['Object']['event_id'];
|
||||
$newAttribute['object_id'] = $object['Object']['id'];
|
||||
if (!isset($newAttribute['timestamp'])) {
|
||||
$newAttribute['distribution'] = Configure::read('MISP.default_attribute_distribution');
|
||||
if ($newAttribute['distribution'] == 'event') {
|
||||
$newAttribute['distribution'] = 5;
|
||||
}
|
||||
}
|
||||
if (!isset($newAttribute['timestamp'])) {
|
||||
$newAttribute['distribution'] = Configure::read('MISP.default_attribute_distribution');
|
||||
if ($newAttribute['distribution'] == 'event') {
|
||||
$newAttribute['distribution'] = 5;
|
||||
}
|
||||
}
|
||||
$this->Event->Attribute->save($newAttribute);
|
||||
$attributeArrays['add'][] = $newAttribute;
|
||||
unset($objectToSave['Attribute'][$newKey]);
|
||||
|
|
|
@ -7,7 +7,7 @@ class OrgBlacklist extends AppModel
|
|||
public $recursive = -1;
|
||||
|
||||
public $actsAs = array(
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'userModel' => 'User',
|
||||
'userKey' => 'user_id',
|
||||
'change' => 'full'),
|
||||
|
|
|
@ -7,7 +7,7 @@ class Post extends AppModel
|
|||
{
|
||||
public $actsAs = array(
|
||||
'Containable',
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'roleModel' => 'Post',
|
||||
'roleKey' => 'post_id',
|
||||
'change' => 'full'
|
||||
|
|
|
@ -9,7 +9,7 @@ App::uses('AppModel', 'Model');
|
|||
class Regexp extends AppModel
|
||||
{
|
||||
public $actsAs = array(
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'roleModel' => 'Role',
|
||||
'roleKey' => 'role_id',
|
||||
'change' => 'full'
|
||||
|
|
|
@ -36,7 +36,7 @@ class Role extends AppModel
|
|||
|
||||
public $actsAs = array(
|
||||
'Trim',
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'roleModel' => 'Role',
|
||||
'roleKey' => 'role_id',
|
||||
'change' => 'full'
|
||||
|
|
|
@ -110,7 +110,7 @@ class Server extends AppModel
|
|||
'getAuthkey' => 'MISP/app/Console/cake Admin getAuthkey [email]',
|
||||
'setBaseurl' => 'MISP/app/Console/cake Baseurl [baseurl]',
|
||||
'changePassword' => 'MISP/app/Console/cake Password [email] [new_password]',
|
||||
'clearBruteforce' => 'MISP/app/Console/cake Admin clearBruteforce [user_email]',
|
||||
'clearBruteforce' => 'MISP/app/Console/cake Admin clearBruteforce [user_email]',
|
||||
'updateDatabase' => 'MISP/app/Console/cake Admin updateDatabase',
|
||||
'updateGalaxies' => 'MISP/app/Console/cake Admin updateGalaxies',
|
||||
'updateTaxonomies' => 'MISP/app/Console/cake Admin updateTaxonomies',
|
||||
|
@ -3329,7 +3329,7 @@ class Server extends AppModel
|
|||
));
|
||||
return false;
|
||||
}
|
||||
copy(APP . 'Config' . DS . 'config.php', APP . 'Config' . DS . 'config.php.bk');
|
||||
copy(APP . 'Config' . DS . 'config.php', APP . 'Config' . DS . 'config.php.bk');
|
||||
$settingObject = $this->getCurrentServerSettings();
|
||||
foreach ($settingObject as $branchName => $branch) {
|
||||
if (!isset($branch['level'])) {
|
||||
|
@ -3375,14 +3375,14 @@ class Server extends AppModel
|
|||
if (function_exists('opcache_reset')) {
|
||||
opcache_reset();
|
||||
}
|
||||
$randomFilename = $this->generateRandomFileName();
|
||||
// To protect us from 2 admin users having a concurent file write to the config file, solar flares and the bogeyman
|
||||
$randomFilename = $this->generateRandomFileName();
|
||||
// To protect us from 2 admin users having a concurent file write to the config file, solar flares and the bogeyman
|
||||
file_put_contents(APP . 'Config' . DS . $randomFilename, $settingsString);
|
||||
rename(APP . 'Config' . DS . $randomFilename, APP . 'Config' . DS . 'config.php');
|
||||
$config_saved = file_get_contents(APP . 'Config' . DS . 'config.php');
|
||||
// if the saved config file is empty, restore the backup.
|
||||
if (strlen($config_saved) < 20) {
|
||||
copy(APP . 'Config' . DS . 'config.php.bk', APP . 'Config' . DS . 'config.php');
|
||||
rename(APP . 'Config' . DS . $randomFilename, APP . 'Config' . DS . 'config.php');
|
||||
$config_saved = file_get_contents(APP . 'Config' . DS . 'config.php');
|
||||
// if the saved config file is empty, restore the backup.
|
||||
if (strlen($config_saved) < 20) {
|
||||
copy(APP . 'Config' . DS . 'config.php.bk', APP . 'Config' . DS . 'config.php');
|
||||
$this->Log = ClassRegistry::init('Log');
|
||||
$this->Log->create();
|
||||
$this->Log->save(array(
|
||||
|
@ -3394,9 +3394,9 @@ class Server extends AppModel
|
|||
'user_id' => 0,
|
||||
'title' => 'Error: Something went wrong saving the config file, reverted to backup file.',
|
||||
));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function checkVersion($newest)
|
||||
|
|
|
@ -8,10 +8,10 @@ class ShadowAttribute extends AppModel
|
|||
{
|
||||
public $combinedKeys = array('event_id', 'category', 'type');
|
||||
|
||||
public $name = 'ShadowAttribute'; // TODO general
|
||||
public $name = 'ShadowAttribute'; // TODO general
|
||||
|
||||
public $actsAs = array(
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'userModel' => 'User',
|
||||
'userKey' => 'user_id',
|
||||
'change' => 'full'),
|
||||
|
@ -368,7 +368,7 @@ class ShadowAttribute extends AppModel
|
|||
{
|
||||
// build the list of composite Attribute.type dynamically by checking if type contains a |
|
||||
// default composite types
|
||||
$compositeTypes = array('malware-sample'); // TODO hardcoded composite
|
||||
$compositeTypes = array('malware-sample'); // TODO hardcoded composite
|
||||
// dynamically generated list
|
||||
foreach (array_keys($this->typeDefinitions) as $type) {
|
||||
$pieces = explode('|', $type);
|
||||
|
@ -433,11 +433,11 @@ class ShadowAttribute extends AppModel
|
|||
return true;
|
||||
} else {
|
||||
$rootDir = $attachments_dir . DS . 'shadow' . DS . $attribute['event_id'];
|
||||
$dir = new Folder($rootDir, true); // create directory structure
|
||||
$dir = new Folder($rootDir, true); // create directory structure
|
||||
$destpath = $rootDir . DS . $attribute['id'];
|
||||
$file = new File($destpath, true); // create the file
|
||||
$decodedData = base64_decode($attribute['data']); // decode
|
||||
if ($file->write($decodedData)) { // save the data
|
||||
$file = new File($destpath, true); // create the file
|
||||
$decodedData = base64_decode($attribute['data']); // decode
|
||||
if ($file->write($decodedData)) { // save the data
|
||||
return true;
|
||||
} else {
|
||||
// error
|
||||
|
|
|
@ -5,7 +5,7 @@ class SharingGroup extends AppModel
|
|||
{
|
||||
public $actsAs = array(
|
||||
'Containable',
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'roleModel' => 'SharingGroup',
|
||||
'roleKey' => 'sharing_group_id',
|
||||
'change' => 'full'
|
||||
|
@ -34,12 +34,12 @@ class SharingGroup extends AppModel
|
|||
'SharingGroupOrg' => array(
|
||||
'className' => 'SharingGroupOrg',
|
||||
'foreignKey' => 'sharing_group_id',
|
||||
'dependent' => true, // cascade deletes
|
||||
'dependent' => true, // cascade deletes
|
||||
),
|
||||
'SharingGroupServer' => array(
|
||||
'className' => 'SharingGroupServer',
|
||||
'foreignKey' => 'sharing_group_id',
|
||||
'dependent' => true, // cascade deletes
|
||||
'dependent' => true, // cascade deletes
|
||||
),
|
||||
'Event',
|
||||
'Attribute',
|
||||
|
@ -577,7 +577,7 @@ class SharingGroup extends AppModel
|
|||
if ($force) {
|
||||
$sgids = $existingSG['SharingGroup']['id'];
|
||||
$editedSG = $existingSG['SharingGroup'];
|
||||
$attributes = array('name', 'releasability', 'description', 'created', 'modified', 'active');
|
||||
$attributes = array('name', 'releasability', 'description', 'created', 'modified', 'active');
|
||||
foreach ($attributes as $a) {
|
||||
if (isset($sg[$a])) {
|
||||
$editedSG[$a] = $sg[$a];
|
||||
|
|
|
@ -8,7 +8,7 @@ class Tag extends AppModel
|
|||
public $displayField = 'name';
|
||||
|
||||
public $actsAs = array(
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'roleModel' => 'Tag',
|
||||
'roleKey' => 'tag_id',
|
||||
'change' => 'full'
|
||||
|
|
|
@ -6,7 +6,7 @@ class Thread extends AppModel
|
|||
{
|
||||
public $actsAs = array(
|
||||
'Containable',
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'roleModel' => 'Thread',
|
||||
'roleKey' => 'thread_id',
|
||||
'change' => 'full'
|
||||
|
|
|
@ -853,7 +853,7 @@ class User extends AppModel
|
|||
// Sign the body
|
||||
require_once 'Crypt/GPG.php';
|
||||
try {
|
||||
$gpg = new Crypt_GPG(array('homedir' => Configure::read('GnuPG.homedir'), 'gpgconf' => Configure::read('GnuPG.gpgconf'), 'binary' => (Configure::read('GnuPG.binary') ? Configure::read('GnuPG.binary') : '/usr/bin/gpg'), 'debug')); // , 'debug' => true
|
||||
$gpg = new Crypt_GPG(array('homedir' => Configure::read('GnuPG.homedir'), 'gpgconf' => Configure::read('GnuPG.gpgconf'), 'binary' => (Configure::read('GnuPG.binary') ? Configure::read('GnuPG.binary') : '/usr/bin/gpg'), 'debug')); // , 'debug' => true
|
||||
if (Configure::read('GnuPG.sign')) {
|
||||
$gpg->addSignKey(Configure::read('GnuPG.email'), Configure::read('GnuPG.password'));
|
||||
$body = $gpg->sign($body, Crypt_GPG::SIGN_MODE_CLEAR);
|
||||
|
|
|
@ -10,7 +10,7 @@ class Whitelist extends AppModel
|
|||
|
||||
public $actsAs = array(
|
||||
'Trim',
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'SysLogLogable.SysLogLogable' => array( // TODO Audit, logable
|
||||
'roleModel' => 'Role',
|
||||
'roleKey' => 'role_id',
|
||||
'change' => 'full'
|
||||
|
@ -26,7 +26,7 @@ class Whitelist extends AppModel
|
|||
),
|
||||
'userdefined' => array(
|
||||
'rule' => array('validateValue'),
|
||||
'message' => 'Name not in the right format. Whitelist entries have to be enclosed by a valid php delimiter (which can be most non-alphanumeric / non-whitespace character). Format: "/8.8.8.8/" Please double check the name.', //'allowEmpty' => false,
|
||||
'message' => 'Name not in the right format. Whitelist entries have to be enclosed by a valid php delimiter (which can be most non-alphanumeric / non-whitespace character). Format: "/8.8.8.8/" Please double check the name.', //'allowEmpty' => false,
|
||||
//'allowEmpty' => false,
|
||||
//'required' => true,
|
||||
//'last' => false, // Stop validation after this rule
|
||||
|
|
Loading…
Reference in New Issue