Jaap Marcus 5 лет назад
Родитель
Сommit
97ae41211c
1 измененных файлов с 31 добавлено и 14 удалено
  1. 31 14
      web/download/backup/index.php

+ 31 - 14
web/download/backup/index.php

@@ -11,21 +11,38 @@ if ((!isset($_GET['token'])) || ($_SESSION['token'] != $_GET['token'])) {
     exit();
 }
 
-$v_username = escapeshellarg($user);
-exec (HESTIA_CMD."v-schedule-user-backup ".$v_username, $output, $return_var);
-if ($return_var == 0) {
-    $_SESSION['error_msg'] = __('BACKUP_SCHEDULED');
-} else {
-    $_SESSION['error_msg'] = implode('<br>', $output);
-    if (empty($_SESSION['error_msg'])) {
-        $_SESSION['error_msg'] = __('Error: hestia did not return any output.');
+if(!file_exists('/backup/'.$backup)){
+    $v_username = escapeshellarg($user);
+    exec (HESTIA_CMD."v-schedule-user-backup ".$v_username, $output, $return_var);
+    if ($return_var == 0) {
+        $_SESSION['error_msg'] = __('BACKUP_SCHEDULED');
+    } else {
+        $_SESSION['error_msg'] = implode('<br>', $output);
+        if (empty($_SESSION['error_msg'])) {
+            $_SESSION['error_msg'] = __('Error: hestia did not return any output.');
+        }
+    
+        if ($return_var == 4) {
+            $_SESSION['error_msg'] = __('BACKUP_EXISTS');
+        }
+    
     }
+    unset($output);
+    header("Location: /list/backup/");
+    exit;
 
-    if ($return_var == 4) {
-        $_SESSION['error_msg'] = __('BACKUP_EXISTS');
+}else{
+    if ($_SESSION['user'] == 'admin') {
+        header('Content-type: application/gzip');
+        header("Content-Disposition: attachment; filename=\"".$backup."\";" ); 
+        header("X-Accel-Redirect: /backup/" . $backup);
     }
 
-}
-unset($output);
-header("Location: /list/backup/");
-exit;
+    if ((!empty($_SESSION['user'])) && ($_SESSION['user'] != 'admin')) {
+        if (strpos($backup, $user.'.') === 0) {
+            header('Content-type: application/gzip');
+            header("Content-Disposition: attachment; filename=\"".$backup."\";" ); 
+            header("X-Accel-Redirect: /backup/" . $backup);
+        }
+    }
+}