index.php 2.2 KB

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