| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- <?php
- use function Hestiacp\quoteshellarg\quoteshellarg;
- ob_start();
- $TAB = "BACKUP";
- include $_SERVER["DOCUMENT_ROOT"] . "/inc/main.php";
- // Edit as someone else?
- if ($_SESSION["userContext"] === "admin" && !empty($_GET["user"])) {
- $user = quoteshellarg($_GET["user"]);
- }
- // List backup exclustions
- exec(HESTIA_CMD . "v-list-user-backup-exclusions " . $user . " 'json'", $output, $return_var);
- check_return_code($return_var, $output);
- $data = json_decode(implode("", $output), true);
- unset($output);
- // Parse web
- $v_username = $user;
- foreach ($data["WEB"] as $key => $value) {
- if (!empty($value)) {
- $v_web .= $key . ":" . str_replace(",", ":", $value) . "\n";
- } else {
- $v_web .= $key . "\n";
- }
- }
- // Parse dns
- foreach ($data["DNS"] as $key => $value) {
- if (!empty($value)) {
- $v_dns .= $key . ":" . $value . "\n";
- } else {
- $v_dns .= $key . "\n";
- }
- }
- // Parse mail
- foreach ($data["MAIL"] as $key => $value) {
- if (!empty($value)) {
- $v_mail .= $key . ":" . $value . "\n";
- } else {
- $v_mail .= $key . "\n";
- }
- }
- // Parse databases
- foreach ($data["DB"] as $key => $value) {
- if (!empty($value)) {
- $v_db .= $key . ":" . $value . "\n";
- } else {
- $v_db .= $key . "\n";
- }
- }
- // Parse user directories
- foreach ($data["USER"] as $key => $value) {
- if (!empty($value)) {
- $v_userdir .= $key . ":" . $value . "\n";
- } else {
- $v_userdir .= $key . "\n";
- }
- }
- // Check POST request
- if (!empty($_POST["save"])) {
- // Check token
- verify_csrf($_POST);
- $v_web = $_POST["v_web"];
- $v_web_tmp = str_replace("\r\n", ",", $_POST["v_web"]);
- $v_web_tmp = rtrim($v_web_tmp, ",");
- $v_web_tmp = "WEB=" . quoteshellarg($v_web_tmp);
- $v_dns = $_POST["v_dns"];
- $v_dns_tmp = str_replace("\r\n", ",", $_POST["v_dns"]);
- $v_dns_tmp = rtrim($v_dns_tmp, ",");
- $v_dns_tmp = "DNS=" . quoteshellarg($v_dns_tmp);
- $v_mail = $_POST["v_mail"];
- $v_mail_tmp = str_replace("\r\n", ",", $_POST["v_mail"]);
- $v_mail_tmp = rtrim($v_mail_tmp, ",");
- $v_mail_tmp = "MAIL=" . quoteshellarg($v_mail_tmp);
- $v_db = $_POST["v_db"];
- $v_db_tmp = str_replace("\r\n", ",", $_POST["v_db"]);
- $v_db_tmp = rtrim($v_db_tmp, ",");
- $v_db_tmp = "DB=" . quoteshellarg($v_db_tmp);
- $v_cron = $_POST["v_cron"];
- $v_cron_tmp = str_replace("\r\n", ",", $_POST["v_cron"]);
- $v_cron_tmp = rtrim($v_cron_tmp, ",");
- $v_cron_tmp = "CRON=" . quoteshellarg($v_cron_tmp);
- $v_userdir = $_POST["v_userdir"];
- $v_userdir_tmp = str_replace("\r\n", ",", $_POST["v_userdir"]);
- $v_userdir_tmp = rtrim($v_userdir_tmp, ",");
- $v_userdir_tmp = "USER=" . quoteshellarg($v_userdir_tmp);
- // Create temporary exeption list on a filesystem
- exec("mktemp", $mktemp_output, $return_var);
- $tmp = $mktemp_output[0];
- $fp = fopen($tmp, "w");
- fwrite(
- $fp,
- $v_web_tmp .
- "\n" .
- $v_dns_tmp .
- "\n" .
- $v_mail_tmp .
- "\n" .
- $v_db_tmp .
- "\n" .
- $v_userdir_tmp .
- "\n",
- );
- fclose($fp);
- unset($mktemp_output);
- // Save changes
- exec(
- HESTIA_CMD . "v-update-user-backup-exclusions " . $user . " " . $tmp,
- $output,
- $return_var,
- );
- check_return_code($return_var, $output);
- unset($output);
- // Set success message
- if (empty($_SESSION["error_msg"])) {
- $_SESSION["ok_msg"] = _("Changes have been saved.");
- }
- }
- // Render page
- render_page($user, $TAB, "edit_backup_exclusions");
- // Flush session messages
- unset($_SESSION["error_msg"]);
- unset($_SESSION["ok_msg"]);
|