triggers.domainadmin.inc.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. // SSO Domain Admin
  3. if (!empty($_GET['sso_token'])) {
  4. $username = domain_admin_sso('check', $_GET['sso_token']);
  5. if ($username !== false) {
  6. session_regenerate_id(true);
  7. $_SESSION['mailcow_cc_username'] = $username;
  8. $_SESSION['mailcow_cc_role'] = 'domainadmin';
  9. header('Location: /domainadmin/mailbox');
  10. }
  11. }
  12. if (isset($_POST["verify_tfa_login"])) {
  13. if (verify_tfa_login($_SESSION['pending_mailcow_cc_username'], $_POST)) {
  14. if ($_SESSION['pending_mailcow_cc_role'] == "domainadmin") {
  15. $_SESSION['mailcow_cc_username'] = $_SESSION['pending_mailcow_cc_username'];
  16. $_SESSION['mailcow_cc_role'] = "domainadmin";
  17. unset($_SESSION['pending_mailcow_cc_username']);
  18. unset($_SESSION['pending_mailcow_cc_role']);
  19. unset($_SESSION['pending_tfa_methods']);
  20. header("Location: /domainadmin/mailbox");
  21. die();
  22. }
  23. }
  24. unset($_SESSION['pending_mailcow_cc_username']);
  25. unset($_SESSION['pending_mailcow_cc_role']);
  26. unset($_SESSION['pending_tfa_methods']);
  27. }
  28. if (isset($_POST["verify_fido2_login"])) {
  29. $res = fido2(array(
  30. "action" => "verify",
  31. "token" => $_POST["token"],
  32. "user" => "domainadmin"
  33. ));
  34. if (is_array($res) && $res['role'] == "domainadmin" && !empty($res['username'])){
  35. $_SESSION["mailcow_cc_username"] = $res['username'];
  36. $_SESSION["mailcow_cc_role"] = $res['role'];
  37. $_SESSION["fido2_cid"] = $res['cid'];
  38. }
  39. exit;
  40. }
  41. if (isset($_GET["cancel_tfa_login"])) {
  42. unset($_SESSION['pending_pw_reset_token']);
  43. unset($_SESSION['pending_pw_new_password']);
  44. unset($_SESSION['pending_mailcow_cc_username']);
  45. unset($_SESSION['pending_mailcow_cc_role']);
  46. unset($_SESSION['pending_tfa_methods']);
  47. header("Location: /domainadmin");
  48. }
  49. if (isset($_POST["login_user"]) && isset($_POST["pass_user"])) {
  50. $login_user = strtolower(trim($_POST["login_user"]));
  51. $as = check_login($login_user, $_POST["pass_user"], false, array("role" => "domain_admin"));
  52. if ($as == "domainadmin") {
  53. session_regenerate_id(true);
  54. $_SESSION['mailcow_cc_username'] = $login_user;
  55. $_SESSION['mailcow_cc_role'] = "domainadmin";
  56. header("Location: /domainadmin/mailbox");
  57. die();
  58. }
  59. elseif ($as != "pending") {
  60. unset($_SESSION['pending_mailcow_cc_username']);
  61. unset($_SESSION['pending_mailcow_cc_role']);
  62. unset($_SESSION['pending_tfa_methods']);
  63. unset($_SESSION['mailcow_cc_username']);
  64. unset($_SESSION['mailcow_cc_role']);
  65. }
  66. }
  67. ?>