index.php 944 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. use function Hestiacp\quoteshellarg\quoteshellarg;
  3. ob_start();
  4. // Main include
  5. include $_SERVER["DOCUMENT_ROOT"] . "/inc/main.php";
  6. // Check token
  7. verify_csrf($_POST);
  8. // Check user
  9. if ($_SESSION["userContext"] != "admin") {
  10. header("Location: /list/user");
  11. exit();
  12. }
  13. if (empty($_POST["rule"])) {
  14. header("Location: /list/firewall/");
  15. exit();
  16. }
  17. if (empty($_POST["action"])) {
  18. header("Location: /list/firewall/");
  19. exit();
  20. }
  21. $rule = $_POST["rule"];
  22. $action = $_POST["action"];
  23. switch ($action) {
  24. case "delete":
  25. $cmd = "v-delete-firewall-rule";
  26. break;
  27. case "suspend":
  28. $cmd = "v-suspend-firewall-rule";
  29. break;
  30. case "unsuspend":
  31. $cmd = "v-unsuspend-firewall-rule";
  32. break;
  33. default:
  34. header("Location: /list/firewall/");
  35. exit();
  36. }
  37. foreach ($rule as $value) {
  38. $value = quoteshellarg($value);
  39. exec(HESTIA_CMD . $cmd . " " . $value, $output, $return_var);
  40. $restart = "yes";
  41. }
  42. header("Location: /list/firewall/");