index.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. use function Hestiacp\quoteshellarg\quoteshellarg;
  3. ob_start();
  4. include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
  5. // Check token
  6. verify_csrf($_POST);
  7. $domain = $_POST['domain'];
  8. $record = $_POST['record'];
  9. $action = $_POST['action'];
  10. if ($_SESSION['userContext'] === 'admin') {
  11. if (empty($record)) {
  12. switch ($action) {
  13. case 'rebuild': $cmd='v-rebuild-dns-domain';
  14. break;
  15. case 'delete': $cmd='v-delete-dns-domain';
  16. break;
  17. case 'suspend': $cmd='v-suspend-dns-domain';
  18. break;
  19. case 'unsuspend': $cmd='v-unsuspend-dns-domain';
  20. break;
  21. default: header("Location: /list/dns/"); exit;
  22. }
  23. } else {
  24. switch ($action) {
  25. case 'delete': $cmd='v-delete-dns-record';
  26. break;
  27. case 'suspend': $cmd='v-suspend-dns-record';
  28. break;
  29. case 'unsuspend': $cmd='v-unsuspend-dns-record';
  30. break;
  31. default: header("Location: /list/dns/?domain=".$domain); exit;
  32. }
  33. }
  34. } else {
  35. if (empty($record)) {
  36. switch ($action) {
  37. case 'delete': $cmd='v-delete-dns-domain';
  38. break;
  39. default: header("Location: /list/dns/"); exit;
  40. }
  41. } else {
  42. switch ($action) {
  43. case 'delete': $cmd='v-delete-dns-record';
  44. break;
  45. default: header("Location: /list/dns/?domain=".$domain); exit;
  46. }
  47. }
  48. }
  49. if (empty($record)) {
  50. foreach ($domain as $value) {
  51. // DNS
  52. $value = quoteshellarg($value);
  53. exec(HESTIA_CMD.$cmd." ".$user." ".$value." no", $output, $return_var);
  54. $restart = 'yes';
  55. }
  56. } else {
  57. foreach ($record as $value) {
  58. // DNS Record
  59. $value = quoteshellarg($value);
  60. $dom = quoteshellarg($domain);
  61. exec(HESTIA_CMD.$cmd." ".$user." ".$dom." ".$value." no", $output, $return_var);
  62. $restart = 'yes';
  63. }
  64. }
  65. if (!empty($restart)) {
  66. exec(HESTIA_CMD."v-restart-dns", $output, $return_var);
  67. }
  68. if (empty($record)) {
  69. header("Location: /list/dns/");
  70. exit;
  71. } else {
  72. header("Location: /list/dns/?domain=".$domain);
  73. exit;
  74. }