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/inc/triggers.global.inc.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
if (isset($_POST["quick_release"])) {
3
quarantine('quick_release', $_POST["quick_release"]);
4
}
6
if (isset($_POST["quick_delete"])) {
7
quarantine('quick_delete', $_POST["quick_delete"]);
8
}
10
if (isset($_SESSION['mailcow_cc_role']) && (isset($_SESSION['acl']['login_as']) && $_SESSION['acl']['login_as'] == "1")) {
11
if (isset($_GET["duallogin"])) {
12
$is_dual = (!empty($_SESSION["dual-login"]["username"])) ? true : false;
13
if (!$is_dual) {
14
$duallogin = html_entity_decode(rawurldecode($_GET["duallogin"]));
15
if (filter_var($duallogin, FILTER_VALIDATE_EMAIL)) {
16
if (!empty(mailbox('get', 'mailbox_details', $duallogin))) {
17
$_SESSION["dual-login"]["username"] = $_SESSION['mailcow_cc_username'];
18
$_SESSION["dual-login"]["role"] = $_SESSION['mailcow_cc_role'];
19
$_SESSION['mailcow_cc_username'] = $duallogin;
20
$_SESSION['mailcow_cc_role'] = "user";
21
header("Location: /user");
22
}
23
}
24
else {
25
if (!empty(domain_admin('details', $duallogin))) {
26
$_SESSION["dual-login"]["username"] = $_SESSION['mailcow_cc_username'];
27
$_SESSION["dual-login"]["role"] = $_SESSION['mailcow_cc_role'];
28
$_SESSION['mailcow_cc_username'] = $duallogin;
29
$_SESSION['mailcow_cc_role'] = "domainadmin";
30
header("Location: /user");
31
}
32
}
33
}
34
}
35
}
37
if (isset($_SESSION['mailcow_cc_role'])) {
38
if (isset($_POST["set_tfa"])) {
39
$had_pending_tfa_setup = !empty($_SESSION['pending_tfa_setup']);
40
set_tfa($_POST);
41
// After TFA setup during forced enrollment
42
if ($had_pending_tfa_setup && empty($_SESSION['pending_tfa_setup'])) {
43
if ($_SESSION['mailcow_cc_role'] === 'admin') {
44
header("Location: /admin/dashboard");
45
} elseif ($_SESSION['mailcow_cc_role'] === 'domainadmin') {
46
header("Location: /domainadmin/mailbox");
47
} elseif ($_SESSION['mailcow_cc_role'] === 'user') {
48
// Check if user should go to SOGo or /user
49
$user_details = mailbox("get", "mailbox_details", $_SESSION['mailcow_cc_username']);
50
$is_dual = (!empty($_SESSION["dual-login"]["username"])) ? true : false;
51
if (intval($user_details['attributes']['sogo_access']) == 1 && !$is_dual && getenv('SKIP_SOGO') != "y") {
52
header("Location: /SOGo/so/");
53
} else {
54
header("Location: /user");
55
}
56
}
57
exit();
58
}
59
}
60
if (isset($_POST["unset_tfa_key"])) {
61
unset_tfa_key($_POST);
62
}
63
if (isset($_POST["unset_fido2_key"])) {
64
fido2(array("action" => "unset_fido2_key", "post_data" => $_POST));
65
}
66
}
67
?>