blob: cadedf4a7c00b76cdc2295ecd3029ea9b68d1c77 [file] [log] [blame]
Matthias Andreas Benkard8f915942021-08-16 10:57:25 +02001<?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 Benkard8f915942021-08-16 10:57:25 +02004
Matthias Andreas Benkard97f12022026-10-23 08:46:40 +02005/*
6/ USER
7*/
Matthias Andreas Benkard8f915942021-08-16 10:57:25 +02008
Matthias Andreas Benkard97f12022026-10-23 08:46:40 +02009// Protect route: user only
10protect_route(['user']);
Matthias Andreas Benkard8f915942021-08-16 10:57:25 +020011
Matthias Andreas Benkard97f12022026-10-23 08:46:40 +020012require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
13$_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
14$username = $_SESSION['mailcow_cc_username'];
15$mailboxdata = mailbox('get', 'mailbox_details', $username);
16$pushover_data = pushover('get', $username);
17$tfa_data = get_tfa();
18$fido2_data = fido2(array("action" => "get_friendly_names"));
Matthias Andreas Benkard8f915942021-08-16 10:57:25 +020019
Matthias Andreas Benkard97f12022026-10-23 08:46:40 +020020$clientconfigstr = "host=" . urlencode($mailcow_hostname) . "&email=" . urlencode($username) . "&name=" . urlencode($mailboxdata['name']) . "&ui=" . urlencode(strtok($_SERVER['HTTP_HOST'], ':')) . "&port=" . urlencode($autodiscover_config['caldav']['port']);
21if ($autodiscover_config['useEASforOutlook'] == 'yes')
22$clientconfigstr .= "&outlookEAS=1";
23if (file_exists('thunderbird-plugins/version.csv')) {
24 $fh = fopen('thunderbird-plugins/version.csv', 'r');
25 if ($fh) {
26 while (($row = fgetcsv($fh, 1000, ';')) !== FALSE) {
27 if ($row[0] == 'sogo-connector@inverse.ca') {
28 $clientconfigstr .= "&connector=" . urlencode($row[1]);
Matthias Andreas Benkard8f915942021-08-16 10:57:25 +020029 }
Matthias Andreas Benkard8f915942021-08-16 10:57:25 +020030 }
Matthias Andreas Benkard97f12022026-10-23 08:46:40 +020031 fclose($fh);
Matthias Andreas Benkard8f915942021-08-16 10:57:25 +020032 }
Matthias Andreas Benkard8f915942021-08-16 10:57:25 +020033}
Matthias Andreas Benkard97f12022026-10-23 08:46:40 +020034
35// Get user information about aliases
36$user_get_alias_details = user_get_alias_details($username);
37$user_get_alias_details['direct_aliases'] = array_filter($user_get_alias_details['direct_aliases']);
38$user_get_alias_details['shared_aliases'] = array_filter($user_get_alias_details['shared_aliases']);
39$user_domains[] = mailbox('get', 'mailbox_details', $username)['domain'];
40$user_alias_domains = $user_get_alias_details['alias_domains'];
41if (!empty($user_alias_domains)) {
42 $user_domains = array_merge($user_domains, $user_alias_domains);
Matthias Andreas Benkardb4b5cc12021-12-28 18:02:04 +010043}
44
Matthias Andreas Benkard97f12022026-10-23 08:46:40 +020045// get number of app passwords
46$number_of_app_passwords = 0;
47foreach (app_passwd("get") as $app_password)
48{
49 $app_password = app_passwd("details", $app_password['id']);
50 if ($app_password['active'])
51 {
52 $number_of_app_passwords++;
53 }
54}
55
56$template = 'user.twig';
57$template_data = [
58 'acl' => $_SESSION['acl'],
59 'acl_json' => json_encode($_SESSION['acl']),
60 'user_spam_score' => mailbox('get', 'spam_score', $username),
61 'tfa_data' => $tfa_data,
62 'tfa_id' => @$_SESSION['tfa_id'],
63 'fido2_data' => $fido2_data,
64 'mailboxdata' => $mailboxdata,
65 'clientconfigstr' => $clientconfigstr,
66 'user_get_alias_details' => $user_get_alias_details,
67 'get_tagging_options' => mailbox('get', 'delimiter_action', $username),
68 'get_tls_policy' => mailbox('get', 'tls_policy', $username),
69 'quarantine_notification' => mailbox('get', 'quarantine_notification', $username),
70 'quarantine_category' => mailbox('get', 'quarantine_category', $username),
71 'user_domains' => $user_domains,
72 'pushover_data' => $pushover_data,
73 'lang_user' => json_encode($lang['user']),
74 'number_of_app_passwords' => $number_of_app_passwords,
75 'lang_datatables' => json_encode($lang['datatables']),
76];
77
Matthias Andreas Benkard8f915942021-08-16 10:57:25 +020078$js_minifier->add('/web/js/site/user.js');
79$js_minifier->add('/web/js/site/pwgen.js');
Matthias Andreas Benkardb4b5cc12021-12-28 18:02:04 +010080
Matthias Andreas Benkard8f915942021-08-16 10:57:25 +020081require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';