index.php 1.4 KB

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