json_api.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. require_once 'inc/prerequisites.inc.php';
  3. error_reporting(E_ALL);
  4. if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_username'])) {
  5. if ($_GET['action'] && $_GET['object']) {
  6. $action = $_GET['action'];
  7. $object = $_GET['object'];
  8. switch ($action) {
  9. case "get_mailbox_details":
  10. $data = mailbox_get_mailbox_details($object);
  11. if (!$data || empty($data)) {
  12. echo '{}';
  13. }
  14. else {
  15. echo json_encode(mailbox_get_mailbox_details($object), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
  16. }
  17. break;
  18. case "get_domain_details":
  19. $data = mailbox_get_domain_details($object);
  20. if (!$data || empty($data)) {
  21. echo '{}';
  22. }
  23. else {
  24. echo json_encode(mailbox_get_domain_details($object), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
  25. }
  26. break;
  27. case "get_u2f_reg_challenge":
  28. if (
  29. ($_SESSION["mailcow_cc_role"] == "admin" || $_SESSION["mailcow_cc_role"] == "domainadmin")
  30. &&
  31. ($_SESSION["mailcow_cc_username"] == $object)
  32. ) {
  33. $data = $u2f->getRegisterData(get_u2f_registrations($object));
  34. list($req, $sigs) = $data;
  35. $_SESSION['regReq'] = json_encode($req);
  36. echo 'var req = ' . json_encode($req) . '; var sigs = ' . json_encode($sigs) . ';';
  37. }
  38. else {
  39. echo '{}';
  40. }
  41. break;
  42. case "get_u2f_auth_challenge":
  43. if (isset($_SESSION['pending_mailcow_cc_username']) && $_SESSION['pending_mailcow_cc_username'] == $object) {
  44. $reqs = json_encode($u2f->getAuthenticateData(get_u2f_registrations($object)));
  45. $_SESSION['authReq'] = $reqs;
  46. echo 'var req = ' . $reqs . ';';
  47. }
  48. else {
  49. echo '{}';
  50. }
  51. break;
  52. default:
  53. echo '{}';
  54. break;
  55. }
  56. }
  57. }