<?php
use function Hestiacp\quoteshellarg\quoteshellarg;

ob_start();

include $_SERVER["DOCUMENT_ROOT"] . "/inc/main.php";

// Check token
verify_csrf($_GET);

$backup = quoteshellarg($_GET["backup"]);

$web = "no";
$dns = "no";
$mail = "no";
$db = "no";
$cron = "no";
$udir = "no";

if ($_GET["type"] == "web") {
	$web = quoteshellarg($_GET["object"]);
}
if ($_GET["type"] == "dns") {
	$dns = quoteshellarg($_GET["object"]);
}
if ($_GET["type"] == "mail") {
	$mail = quoteshellarg($_GET["object"]);
}
if ($_GET["type"] == "db") {
	$db = quoteshellarg($_GET["object"]);
}
if ($_GET["type"] == "cron") {
	$cron = "yes";
}
if ($_GET["type"] == "udir") {
	$udir = quoteshellarg($_GET["object"]);
}

if (!empty($_GET["type"])) {
	$restore_cmd =
		HESTIA_CMD .
		"v-schedule-user-restore " .
		$user .
		" " .
		$backup .
		" " .
		$web .
		" " .
		$dns .
		" " .
		$mail .
		" " .
		$db .
		" " .
		$cron .
		" " .
		$udir;
} else {
	$restore_cmd = HESTIA_CMD . "v-schedule-user-restore " . $user . " " . $backup;
}

exec($restore_cmd, $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=" . $_GET["backup"]);