index.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. ob_start();
  3. include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
  4. // Check token
  5. verify_csrf($_GET);
  6. $backup = $_GET['backup'];
  7. if (!file_exists('/backup/'.$backup)) {
  8. $backup = escapeshellarg($_GET['backup']);
  9. exec(HESTIA_CMD."v-schedule-user-backup-download ".$user." ".$backup, $output, $return_var);
  10. if ($return_var == 0) {
  11. $_SESSION['error_msg'] = _('BACKUP_DOWNLOAD_SCHEDULED');
  12. } else {
  13. $_SESSION['error_msg'] = implode('<br>', $output);
  14. if (empty($_SESSION['error_msg'])) {
  15. $_SESSION['error_msg'] = _('Error: Hestia did not return any output.');
  16. }
  17. }
  18. unset($output);
  19. header("Location: /list/backup/");
  20. exit;
  21. } else {
  22. if ($_SESSION['userContext'] === 'admin') {
  23. header('Content-type: application/gzip');
  24. header("Content-Disposition: attachment; filename=\"".$backup."\";");
  25. header("X-Accel-Redirect: /backup/" . $backup);
  26. }
  27. if ((!empty($_SESSION['user'])) && ($_SESSION['userContext'] != 'admin')) {
  28. if (strpos($backup, $_SESSION['user'].'.') === 0) {
  29. header('Content-type: application/gzip');
  30. header("Content-Disposition: attachment; filename=\"".$backup."\";");
  31. header("X-Accel-Redirect: /backup/" . $backup);
  32. }
  33. }
  34. }