index.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
  3. require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/triggers.user.inc.php';
  4. if (isset($_SESSION['mailcow_cc_role']) && isset($_SESSION['oauth2_request'])) {
  5. $oauth2_request = $_SESSION['oauth2_request'];
  6. unset($_SESSION['oauth2_request']);
  7. header('Location: ' . $oauth2_request);
  8. exit();
  9. }
  10. elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'user') {
  11. if (empty($_SESSION['pending_tfa_setup']) && empty($_SESSION['pending_pw_update'])) {
  12. $user_details = mailbox("get", "mailbox_details", $_SESSION['mailcow_cc_username']);
  13. $is_dual = (!empty($_SESSION["dual-login"]["username"])) ? true : false;
  14. if (intval($user_details['attributes']['sogo_access']) == 1 && !$is_dual && getenv('SKIP_SOGO') != "y") {
  15. header("Location: /SOGo/so/");
  16. } else {
  17. header("Location: /user");
  18. }
  19. exit();
  20. }
  21. }
  22. elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'admin') {
  23. if (empty($_SESSION['pending_tfa_setup']) && empty($_SESSION['pending_pw_update'])) {
  24. header('Location: /admin/dashboard');
  25. exit();
  26. }
  27. }
  28. elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'domainadmin') {
  29. if (empty($_SESSION['pending_tfa_setup']) && empty($_SESSION['pending_pw_update'])) {
  30. header('Location: /domainadmin/mailbox');
  31. exit();
  32. }
  33. }
  34. $host = strtolower($_SERVER['HTTP_HOST'] ?? '');
  35. if (str_starts_with($host, 'autodiscover.') || str_starts_with($host, 'autoconfig.')) {
  36. http_response_code(404);
  37. exit();
  38. }
  39. require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
  40. $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
  41. $_SESSION['index_query_string'] = $_SERVER['QUERY_STRING'];
  42. $has_iam_sso = false;
  43. if ($iam_provider){
  44. $iam_redirect_url = identity_provider("get-redirect");
  45. $has_iam_sso = $iam_redirect_url ? true : false;
  46. }
  47. $custom_login = customize('get', 'custom_login');
  48. $template = 'user_index.twig';
  49. $template_data = [
  50. 'oauth2_request' => @$_SESSION['oauth2_request'],
  51. 'is_mobileconfig' => str_contains($_SESSION['index_query_string'], 'mobileconfig'),
  52. 'login_delay' => @$_SESSION['ldelay'],
  53. 'has_iam_sso' => $has_iam_sso,
  54. 'custom_login' => $custom_login,
  55. ];
  56. $js_minifier->add('/web/js/site/index.js');
  57. require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';