diff --git a/classes/admincontroller.php b/classes/admincontroller.php index 5f2c6855..447d4eed 100644 --- a/classes/admincontroller.php +++ b/classes/admincontroller.php @@ -1,6 +1,7 @@ grav['uri']->param('download'); - if ($download) { - $file = base64_decode(urldecode($download)); - $backups_root_dir = $this->grav['locator']->findResource('backup://', true); + try { + if ($download) { + $file = base64_decode(urldecode($download)); + $backups_root_dir = $this->grav['locator']->findResource('backup://', true); - if (0 !== strpos($file, $backups_root_dir)) { - header('HTTP/1.1 401 Unauthorized'); - exit(); + if (0 !== strpos($file, $backups_root_dir)) { + header('HTTP/1.1 401 Unauthorized'); + exit(); + } + + Utils::download($file, true); } - Utils::download($file, true); - } - - $log = JsonFile::instance($this->grav['locator']->findResource("log://backup.log", true, true)); - - try { - $backup = ZipBackup::backup(); + $log = JsonFile::instance($this->grav['locator']->findResource("log://backup.log", true, true)); + $id = $this->grav['uri']->param('id', 0); + $backup = Backups::backup($id); } catch (\Exception $e) { $this->admin->json_response = [ 'status' => 'error', diff --git a/themes/grav/templates/partials/dashboard-maintenance.html.twig b/themes/grav/templates/partials/dashboard-maintenance.html.twig index 5de19271..2148b2c2 100644 --- a/themes/grav/templates/partials/dashboard-maintenance.html.twig +++ b/themes/grav/templates/partials/dashboard-maintenance.html.twig @@ -23,7 +23,21 @@
diff --git a/themes/grav/templates/partials/tools-backups-titlebar.html.twig b/themes/grav/templates/partials/tools-backups-titlebar.html.twig index e23e206a..b209263f 100644 --- a/themes/grav/templates/partials/tools-backups-titlebar.html.twig +++ b/themes/grav/templates/partials/tools-backups-titlebar.html.twig @@ -10,7 +10,9 @@