public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Trace
data/web/user.php
Trace helps you understand code history line by line. See who changed each line, when it changed, and which commit introduced it.
Author
Date
Commit
Line
Code
1
<?php
2
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
3
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/triggers.user.inc.php';
5
/*
6
/ USER
7
*/
9
// Protect route: user only
10
protect_route(['user']);
12
require_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"));
20
$clientconfigstr = "host=" . urlencode($mailcow_hostname) . "&email=" . urlencode($username) . "&name=" . urlencode($mailboxdata['name']) . "&ui=" . urlencode(strtok($_SERVER['HTTP_HOST'], ':')) . "&port=" . urlencode($autodiscover_config['caldav']['port']);
21
if ($autodiscover_config['useEASforOutlook'] == 'yes')
22
$clientconfigstr .= "&outlookEAS=1";
23
if (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] == '[email protected]') {
28
$clientconfigstr .= "&connector=" . urlencode($row[1]);
29
}
30
}
31
fclose($fh);
32
}
33
}
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'];
41
if (!empty($user_alias_domains)) {
42
$user_domains = array_merge($user_domains, $user_alias_domains);
43
}
45
// get number of app passwords
46
$number_of_app_passwords = 0;
47
foreach (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
}
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
];
78
$js_minifier->add('/web/js/site/user.js');
79
$js_minifier->add('/web/js/site/pwgen.js');
81
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';