index.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. $account = $_POST['account'];
  9. $action = $_POST['action'];
  10. if ($_SESSION['userContext'] === 'admin') {
  11. if (empty($account)) {
  12. switch ($action) {
  13. case 'rebuild': $cmd='v-rebuild-mail-domain';
  14. break;
  15. case 'delete': $cmd='v-delete-mail-domain';
  16. break;
  17. case 'suspend': $cmd='v-suspend-mail-domain';
  18. break;
  19. case 'unsuspend': $cmd='v-unsuspend-mail-domain';
  20. break;
  21. default: header("Location: /list/mail/"); exit;
  22. }
  23. } else {
  24. switch ($action) {
  25. case 'delete': $cmd='v-delete-mail-account';
  26. break;
  27. case 'suspend': $cmd='v-suspend-mail-account';
  28. break;
  29. case 'unsuspend': $cmd='v-unsuspend-mail-account';
  30. break;
  31. default: header("Location: /list/mail/?domain=".$domain); exit;
  32. }
  33. }
  34. } else {
  35. if (empty($account)) {
  36. switch ($action) {
  37. case 'delete': $cmd='v-delete-mail-domain';
  38. break;
  39. case 'suspend': $cmd='v-suspend-mail-domain';
  40. break;
  41. case 'unsuspend': $cmd='v-unsuspend-mail-domain';
  42. break;
  43. default: header("Location: /list/mail/"); exit;
  44. }
  45. } else {
  46. switch ($action) {
  47. case 'delete': $cmd='v-delete-mail-account';
  48. break;
  49. case 'suspend': $cmd='v-suspend-mail-account';
  50. break;
  51. case 'unsuspend': $cmd='v-unsuspend-mail-account';
  52. break;
  53. default: header("Location: /list/mail/?domain=".$domain); exit;
  54. }
  55. }
  56. }
  57. if (empty($account)) {
  58. foreach ($domain as $value) {
  59. // Mail
  60. $value = quoteshellarg($value);
  61. exec(HESTIA_CMD.$cmd." ".$user." ".$value, $output, $return_var);
  62. $restart = 'yes';
  63. }
  64. } else {
  65. foreach ($account as $value) {
  66. // Mail Account
  67. $value = quoteshellarg($value);
  68. $dom = quoteshellarg($domain);
  69. exec(HESTIA_CMD.$cmd." ".$user." ".$dom." ".$value, $output, $return_var);
  70. $restart = 'yes';
  71. }
  72. }
  73. if (empty($account)) {
  74. header("Location: /list/mail/");
  75. exit;
  76. } else {
  77. header("Location: /list/mail/?domain=".$domain);
  78. exit;
  79. }