index.php 1.2 KB

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