You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							89 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							89 lines
						
					
					
						
							1.8 KiB
						
					
					
				<?php
 | 
						|
use function Hestiacp\quoteshellarg\quoteshellarg;
 | 
						|
 | 
						|
ob_start();
 | 
						|
 | 
						|
include $_SERVER["DOCUMENT_ROOT"] . "/inc/main.php";
 | 
						|
 | 
						|
// Check token
 | 
						|
verify_csrf($_POST);
 | 
						|
 | 
						|
if (empty($_POST["backup"])) {
 | 
						|
	header("Location: /list/backup/");
 | 
						|
	exit();
 | 
						|
}
 | 
						|
if (empty($_POST["action"])) {
 | 
						|
	header("Location: /list/backup");
 | 
						|
	exit();
 | 
						|
}
 | 
						|
 | 
						|
$action = $_POST["action"];
 | 
						|
$backup = quoteshellarg($_POST["backup"]);
 | 
						|
 | 
						|
$web = "no";
 | 
						|
$dns = "no";
 | 
						|
$mail = "no";
 | 
						|
$db = "no";
 | 
						|
$cron = "no";
 | 
						|
$udir = "no";
 | 
						|
 | 
						|
if (!empty($_POST["web"])) {
 | 
						|
	$web = quoteshellarg(implode(",", $_POST["web"]));
 | 
						|
}
 | 
						|
if (!empty($_POST["dns"])) {
 | 
						|
	$dns = quoteshellarg(implode(",", $_POST["dns"]));
 | 
						|
}
 | 
						|
if (!empty($_POST["mail"])) {
 | 
						|
	$mail = quoteshellarg(implode(",", $_POST["mail"]));
 | 
						|
}
 | 
						|
if (!empty($_POST["db"])) {
 | 
						|
	$db = quoteshellarg(implode(",", $_POST["db"]));
 | 
						|
}
 | 
						|
if (!empty($_POST["cron"])) {
 | 
						|
	$cron = "yes";
 | 
						|
}
 | 
						|
if (!empty($_POST["udir"])) {
 | 
						|
	$udir = quoteshellarg(implode(",", $_POST["udir"]));
 | 
						|
}
 | 
						|
 | 
						|
if ($action == "restore") {
 | 
						|
	exec(
 | 
						|
		HESTIA_CMD .
 | 
						|
			"v-schedule-user-restore " .
 | 
						|
			$user .
 | 
						|
			" " .
 | 
						|
			$backup .
 | 
						|
			" " .
 | 
						|
			$web .
 | 
						|
			" " .
 | 
						|
			$dns .
 | 
						|
			" " .
 | 
						|
			$mail .
 | 
						|
			" " .
 | 
						|
			$db .
 | 
						|
			" " .
 | 
						|
			$cron .
 | 
						|
			" " .
 | 
						|
			$udir,
 | 
						|
		$output,
 | 
						|
		$return_var,
 | 
						|
	);
 | 
						|
	if ($return_var == 0) {
 | 
						|
		$_SESSION["error_msg"] = _(
 | 
						|
			"Task has been added to the queue. You will receive an email notification when your restore has been completed.",
 | 
						|
		);
 | 
						|
	} 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"] = _(
 | 
						|
				"An existing restoration task is already running. Please wait for it to finish before launching it again.",
 | 
						|
			);
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
header("Location: /list/backup/?backup=" . $_POST["backup"]);
 |