sogo_ctrl.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. session_start();
  3. require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
  4. header('Content-Type: text/html; charset=utf-8');
  5. if (!isset($_SESSION['mailcow_cc_role']) || $_SESSION['mailcow_cc_role'] != 'admin') {
  6. exit();
  7. }
  8. if ($_GET['ACTION'] == "start") {
  9. $retry = 0;
  10. while (docker('sogo-mailcow', 'info')['State']['Running'] != 1 && $retry <= 3) {
  11. $response = docker('sogo-mailcow', 'post', 'start');
  12. $response = json_decode($response, true);
  13. $last_response = ($response['type'] == "success") ? '<b><span class="pull-right text-success">OK</span></b>' : '<b><span class="pull-right text-danger">Error: ' . $response['msg'] . '</span></b>';
  14. if ($response['type'] == "success") {
  15. break;
  16. }
  17. usleep(1500000);
  18. $retry++;
  19. }
  20. echo (!isset($last_response)) ? '<b><span class="pull-right text-warning">Already running</span></b>' : $last_response;
  21. }
  22. if ($_GET['ACTION'] == "stop") {
  23. $retry = 0;
  24. while (docker('sogo-mailcow', 'info')['State']['Running'] == 1 && $retry <= 3) {
  25. $response = docker('sogo-mailcow', 'post', 'stop');
  26. $response = json_decode($response, true);
  27. $last_response = ($response['type'] == "success") ? '<b><span class="pull-right text-success">OK</span></b>' : '<b><span class="pull-right text-danger">Error: ' . $response['msg'] . '</span></b>';
  28. if ($response['type'] == "success") {
  29. break;
  30. }
  31. usleep(1500000);
  32. $retry++;
  33. }
  34. echo (!isset($last_response)) ? '<b><span class="pull-right text-warning">Not running</span></b>' : $last_response;
  35. }
  36. ?>