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
			| 
								 
											2 years ago
										 
									 | 
							
								<?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"]);
							 |