index.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. $user_details = mailbox("get", "mailbox_details", $_SESSION['mailcow_cc_username']);
  12. $is_dual = (!empty($_SESSION["dual-login"]["username"])) ? true : false;
  13. if (intval($user_details['attributes']['sogo_access']) == 1 && !$is_dual && getenv('SKIP_SOGO') != "y") {
  14. header("Location: /SOGo/so/{$_SESSION['mailcow_cc_username']}");
  15. } else {
  16. header("Location: /user");
  17. }
  18. exit();
  19. }
  20. elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'admin') {
  21. header('Location: /admin/dashboard');
  22. exit();
  23. }
  24. elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'domainadmin') {
  25. header('Location: /domainadmin/mailbox');
  26. exit();
  27. }
  28. require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
  29. $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
  30. $_SESSION['index_query_string'] = $_SERVER['QUERY_STRING'];
  31. $has_iam_sso = false;
  32. if ($iam_provider){
  33. $iam_redirect_url = identity_provider("get-redirect");
  34. $has_iam_sso = $iam_redirect_url ? true : false;
  35. }
  36. $custom_login = customize('get', 'custom_login');
  37. $template = 'user_index.twig';
  38. $template_data = [
  39. 'oauth2_request' => @$_SESSION['oauth2_request'],
  40. 'is_mobileconfig' => str_contains($_SESSION['index_query_string'], 'mobileconfig'),
  41. 'login_delay' => @$_SESSION['ldelay'],
  42. 'has_iam_sso' => $has_iam_sso,
  43. 'custom_login' => $custom_login,
  44. ];
  45. $js_minifier->add('/web/js/site/index.js');
  46. require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';