blob: b037c14f12c762bce02c9451b27d94a6cc48d66b [file] [log] [blame]
Matthias Andreas Benkard4edeb9f2021-01-02 15:32:21 +01001<?php
2require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
Matthias Andreas Benkard97f12022026-10-23 08:46:40 +02003require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/triggers.user.inc.php';
Matthias Andreas Benkard4edeb9f2021-01-02 15:32:21 +01004
5if (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 Benkard97f12022026-10-23 08:46:40 +020011elseif (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 Benkard4edeb9f2021-01-02 15:32:21 +010023elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'admin') {
Matthias Andreas Benkard97f12022026-10-23 08:46:40 +020024 if (empty($_SESSION['pending_tfa_setup']) && empty($_SESSION['pending_pw_update'])) {
25 header('Location: /admin/dashboard');
26 exit();
27 }
Matthias Andreas Benkard4edeb9f2021-01-02 15:32:21 +010028}
29elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'domainadmin') {
Matthias Andreas Benkard97f12022026-10-23 08:46:40 +020030 if (empty($_SESSION['pending_tfa_setup']) && empty($_SESSION['pending_pw_update'])) {
31 header('Location: /domainadmin/mailbox');
32 exit();
33 }
Matthias Andreas Benkard4edeb9f2021-01-02 15:32:21 +010034}
Matthias Andreas Benkard97f12022026-10-23 08:46:40 +020035
36$host = strtolower($_SERVER['HTTP_HOST'] ?? '');
37if (str_starts_with($host, 'autodiscover.') || str_starts_with($host, 'autoconfig.')) {
38 http_response_code(404);
Matthias Andreas Benkard4edeb9f2021-01-02 15:32:21 +010039 exit();
40}
41
42require_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 Benkard97f12022026-10-23 08:46:40 +020046$has_iam_sso = false;
47if ($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 Benkardb4b5cc12021-12-28 18:02:04 +010054$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 Benkard97f12022026-10-23 08:46:40 +020058 'has_iam_sso' => $has_iam_sso,
59 'custom_login' => $custom_login,
Matthias Andreas Benkardb4b5cc12021-12-28 18:02:04 +010060];
61
Matthias Andreas Benkard4edeb9f2021-01-02 15:32:21 +010062$js_minifier->add('/web/js/site/index.js');
63require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';