diff --git a/app/Controller/AuditLogsController.php b/app/Controller/AuditLogsController.php index 6ddee8443b..a4df3b4831 100644 --- a/app/Controller/AuditLogsController.php +++ b/app/Controller/AuditLogsController.php @@ -155,8 +155,14 @@ public function admin_index() $this->set('title_for_layout', __('Audit logs')); } - public function eventIndex($eventId, $org = null) + public function eventIndex($eventId = null, $org = null) { + $params = $this->IndexFilter->harvestParameters(['created', 'org', 'eventId']); + if (!empty($params['eventId'])) { + $eventId = $params['eventId']; + } else if (empty($eventId)) { + $eventId = -1; + } $event = $this->AuditLog->Event->fetchSimpleEvent($this->Auth->user(), $eventId); if (empty($event)) { throw new NotFoundException('Invalid event.'); @@ -164,7 +170,6 @@ public function eventIndex($eventId, $org = null) $this->paginate['conditions'] = $this->__createEventIndexConditions($event); $this->set('passedArgsArray', ['eventId' => $eventId, 'org' => $org]); - $params = $this->IndexFilter->harvestParameters(['created', 'org']); if ($org) { $params['org'] = $org; } diff --git a/app/Model/EventReport.php b/app/Model/EventReport.php index 9934eef0da..f37a0563d4 100644 --- a/app/Model/EventReport.php +++ b/app/Model/EventReport.php @@ -199,7 +199,9 @@ public function editReport(array $user, array $report, $eventId, $fromPull = fal $errors = $this->saveAndReturnErrors($report, ['fieldList' => self::CAPTURE_FIELDS], $errors); if (empty($errors)) { $this->Event->captureAnalystData($user, $report['EventReport'], 'EventReport', $report['EventReport']['uuid']); - $this->Event->unpublishEvent($eventId); + if (!$fromPull) { + $this->Event->unpublishEvent($eventId); + } } return $errors; } diff --git a/app/Model/Relationship.php b/app/Model/Relationship.php index 5a1bde400f..e0cbebdc06 100644 --- a/app/Model/Relationship.php +++ b/app/Model/Relationship.php @@ -38,6 +38,17 @@ class Relationship extends AnalystData /** @var array|null */ private $__currentUser; + public function beforeValidate($options = array()) + { + parent::beforeValidate($options); + // Prevent self-referencing relationships + if ($this->data[$this->current_type]['object_uuid'] == $this->data[$this->current_type]['related_object_uuid']) { + return false; + } + return true; + + } + public function afterFind($results, $primary = false) { $results = parent::afterFind($results, $primary); diff --git a/app/View/Elements/view_galaxy_matrix.ctp b/app/View/Elements/view_galaxy_matrix.ctp index e81027ae46..f0bb5af71b 100644 --- a/app/View/Elements/view_galaxy_matrix.ctp +++ b/app/View/Elements/view_galaxy_matrix.ctp @@ -67,13 +67,14 @@ if (isset($interpolation) && !empty($interpolation)) {