user.php 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
  3. if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'domainadmin') {
  4. /*
  5. / DOMAIN ADMIN
  6. */
  7. require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
  8. $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
  9. $tfa_data = get_tfa();
  10. $fido2_data = fido2(array("action" => "get_friendly_names"));
  11. $username = $_SESSION['mailcow_cc_username'];
  12. $template = 'domainadmin.twig';
  13. $template_data = [
  14. 'acl' => $_SESSION['acl'],
  15. 'acl_json' => json_encode($_SESSION['acl']),
  16. 'user_spam_score' => mailbox('get', 'spam_score', $username),
  17. 'tfa_data' => $tfa_data,
  18. 'fido2_data' => $fido2_data,
  19. 'lang_user' => json_encode($lang['user']),
  20. ];
  21. }
  22. elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'user') {
  23. /*
  24. / USER
  25. */
  26. require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
  27. $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
  28. $username = $_SESSION['mailcow_cc_username'];
  29. $mailboxdata = mailbox('get', 'mailbox_details', $username);
  30. $pushover_data = pushover('get', $username);
  31. $tfa_data = get_tfa();
  32. $fido2_data = fido2(array("action" => "get_friendly_names"));
  33. $clientconfigstr = "host=" . urlencode($mailcow_hostname) . "&email=" . urlencode($username) . "&name=" . urlencode($mailboxdata['name']) . "&ui=" . urlencode(strtok($_SERVER['HTTP_HOST'], ':')) . "&port=" . urlencode($autodiscover_config['caldav']['port']);
  34. if ($autodiscover_config['useEASforOutlook'] == 'yes')
  35. $clientconfigstr .= "&outlookEAS=1";
  36. if (file_exists('thunderbird-plugins/version.csv')) {
  37. $fh = fopen('thunderbird-plugins/version.csv', 'r');
  38. if ($fh) {
  39. while (($row = fgetcsv($fh, 1000, ';')) !== FALSE) {
  40. if ($row[0] == 'sogo-connector@inverse.ca') {
  41. $clientconfigstr .= "&connector=" . urlencode($row[1]);
  42. }
  43. }
  44. fclose($fh);
  45. }
  46. }
  47. // Get user information about aliases
  48. $user_get_alias_details = user_get_alias_details($username);
  49. $user_get_alias_details['direct_aliases'] = array_filter($user_get_alias_details['direct_aliases']);
  50. $user_get_alias_details['shared_aliases'] = array_filter($user_get_alias_details['shared_aliases']);
  51. $user_domains[] = mailbox('get', 'mailbox_details', $username)['domain'];
  52. $user_alias_domains = $user_get_alias_details['alias_domains'];
  53. if (!empty($user_alias_domains)) {
  54. $user_domains = array_merge($user_domains, $user_alias_domains);
  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. 'fido2_data' => $fido2_data,
  63. 'mailboxdata' => $mailboxdata,
  64. 'clientconfigstr' => $clientconfigstr,
  65. 'user_get_alias_details' => $user_get_alias_details,
  66. 'get_tagging_options' => mailbox('get', 'delimiter_action', $username),
  67. 'get_tls_policy' => mailbox('get', 'tls_policy', $username),
  68. 'quarantine_notification' => mailbox('get', 'quarantine_notification', $username),
  69. 'quarantine_category' => mailbox('get', 'quarantine_category', $username),
  70. 'user_domains' => $user_domains,
  71. 'pushover_data' => $pushover_data,
  72. 'lang_user' => json_encode($lang['user']),
  73. ];
  74. }
  75. if (!isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'admin') {
  76. header('Location: /');
  77. exit();
  78. }
  79. $js_minifier->add('/web/js/site/user.js');
  80. $js_minifier->add('/web/js/site/pwgen.js');
  81. require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';