From 5012851256055980f9c6a430985a31aeee2f1c92 Mon Sep 17 00:00:00 2001 From: mjollnir_ Date: Fri, 22 Aug 2008 13:25:53 +0000 Subject: [PATCH] MDL-14591 - fixups related to cancelling requests and reawakening them --- portfolio/add.php | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/portfolio/add.php b/portfolio/add.php index fa25e78a17..927d2a0bfa 100644 --- a/portfolio/add.php +++ b/portfolio/add.php @@ -7,6 +7,9 @@ if (empty($CFG->portfolioenabled)) { require_once($CFG->libdir . '/portfoliolib.php'); require_once($CFG->libdir . '/formslib.php'); + +$cancel = optional_param('cancel', 0, PARAM_RAW); + $exporter = null; $dataid = 0; @@ -16,11 +19,20 @@ if (!$dataid = optional_param('id', '', PARAM_INT) ) { } } if ($dataid) { - $exporter = portfolio_exporter::rewaken_object($dataid); - $exporter->verify_rewaken(); - if ($cancel = optional_param('cancel', 0, PARAM_RAW)) { + try { + $exporter = portfolio_exporter::rewaken_object($dataid); + } catch (portfolio_exception $e) { + if ($cancel) { + unset($SESSION->portfolioexport); + redirect($CFG->wwwroot); + } else { + throw $e; + } + } + if ($cancel) { $exporter->cancel_request(); } + $exporter->verify_rewaken(); if (!$exporter->get('instance')) { if ($instance = optional_param('instance', '', PARAM_INT)) { try { @@ -33,7 +45,6 @@ if ($dataid) { } $instance->set('user', $USER); $exporter->set('instance', $instance); - $exporter->set('sesskey', sesskey()); $exporter->save(); } } @@ -92,6 +103,7 @@ if ($dataid) { $exporter = new portfolio_exporter($instance, $caller, $callbackfile, $navigation); $exporter->set('user', $USER); + $exporter->set('sesskey', sesskey()); $exporter->save(); $SESSION->portfolioexport = $exporter->get('id'); } -- 2.39.5