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