triggers.global.inc.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. if (isset($_POST["quick_release"])) {
  3. quarantine('quick_release', $_POST["quick_release"]);
  4. }
  5. if (isset($_POST["quick_delete"])) {
  6. quarantine('quick_delete', $_POST["quick_delete"]);
  7. }
  8. if (isset($_SESSION['mailcow_cc_role']) && (isset($_SESSION['acl']['login_as']) && $_SESSION['acl']['login_as'] == "1")) {
  9. if (isset($_GET["duallogin"])) {
  10. $is_dual = (!empty($_SESSION["dual-login"]["username"])) ? true : false;
  11. if (!$is_dual) {
  12. $duallogin = html_entity_decode(rawurldecode($_GET["duallogin"]));
  13. if (filter_var($duallogin, FILTER_VALIDATE_EMAIL)) {
  14. if (!empty(mailbox('get', 'mailbox_details', $duallogin))) {
  15. $_SESSION["dual-login"]["username"] = $_SESSION['mailcow_cc_username'];
  16. $_SESSION["dual-login"]["role"] = $_SESSION['mailcow_cc_role'];
  17. $_SESSION['mailcow_cc_username'] = $duallogin;
  18. $_SESSION['mailcow_cc_role'] = "user";
  19. header("Location: /user");
  20. }
  21. }
  22. else {
  23. if (!empty(domain_admin('details', $duallogin))) {
  24. $_SESSION["dual-login"]["username"] = $_SESSION['mailcow_cc_username'];
  25. $_SESSION["dual-login"]["role"] = $_SESSION['mailcow_cc_role'];
  26. $_SESSION['mailcow_cc_username'] = $duallogin;
  27. $_SESSION['mailcow_cc_role'] = "domainadmin";
  28. header("Location: /user");
  29. }
  30. }
  31. }
  32. }
  33. }
  34. if (isset($_SESSION['mailcow_cc_role'])) {
  35. if (isset($_POST["set_tfa"])) {
  36. $had_pending_tfa_setup = !empty($_SESSION['pending_tfa_setup']);
  37. set_tfa($_POST);
  38. // After TFA setup during forced enrollment
  39. if ($had_pending_tfa_setup && empty($_SESSION['pending_tfa_setup'])) {
  40. if ($_SESSION['mailcow_cc_role'] === 'admin') {
  41. header("Location: /admin/dashboard");
  42. } elseif ($_SESSION['mailcow_cc_role'] === 'domainadmin') {
  43. header("Location: /domainadmin/mailbox");
  44. } elseif ($_SESSION['mailcow_cc_role'] === 'user') {
  45. // Check if user should go to SOGo or /user
  46. $user_details = mailbox("get", "mailbox_details", $_SESSION['mailcow_cc_username']);
  47. $is_dual = (!empty($_SESSION["dual-login"]["username"])) ? true : false;
  48. if (intval($user_details['attributes']['sogo_access']) == 1 && !$is_dual && getenv('SKIP_SOGO') != "y") {
  49. header("Location: /SOGo/so/");
  50. } else {
  51. header("Location: /user");
  52. }
  53. }
  54. exit();
  55. }
  56. }
  57. if (isset($_POST["unset_tfa_key"])) {
  58. unset_tfa_key($_POST);
  59. }
  60. if (isset($_POST["unset_fido2_key"])) {
  61. fido2(array("action" => "unset_fido2_key", "post_data" => $_POST));
  62. }
  63. }
  64. ?>