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
Commit
[Compose] Updated PHP-FPM image [Web] Rename configuration menu [Web] Show warning when configuration disabled quarantine
57aa379a
.gitignore | 1 +
data/web/admin.php | 2 +-
data/web/inc/functions.quarantine.inc.php | 12 +++---------
data/web/inc/header.inc.php | 1 +
data/web/lang/lang.de.php | 11 ++++++-----
data/web/lang/lang.en.php | 13 +++++++------
data/web/quarantine.php | 9 +++++++++
docker-compose.yml | 2 +-
8 files changed, 29 insertions(+), 22 deletions(-)
Diff
diff --git a/.gitignore b/.gitignore
index 18df41c2..91233788 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,5 +25,6 @@ data/conf/rspamd/custom/*
data/conf/portainer/
data/gitea/
data/gogs/
+data/conf/sogo/plist_ldap
.github/
docker-compose.override.yml
diff --git a/data/web/admin.php b/data/web/admin.php
index 6c2e38b6..d077bd7e 100644
--- a/data/web/admin.php
+++ b/data/web/admin.php
@@ -11,7 +11,7 @@ $tfa_data = get_tfa();
<li role="presentation" class="active"><a href="#tab-access" aria-controls="tab-access" role="tab" data-toggle="tab"><?=$lang['admin']['access'];?></a></li>
<li role="presentation"><a href="#tab-config" aria-controls="tab-config" role="tab" data-toggle="tab"><?=$lang['admin']['configuration'];?></a></li>
<li role="presentation"><a href="#tab-sys-mails" aria-controls="tab-sys-mails" role="tab" data-toggle="tab"><?=$lang['admin']['sys_mails'];?></a></li>
- <li role="presentation"><a href="#tab-mailq" aria-controls="tab-mailq" role="tab" data-toggle="tab">Queue manager</a></li>
+ <li role="presentation"><a href="#tab-mailq" aria-controls="tab-mailq" role="tab" data-toggle="tab"><?=$lang['admin']['queue_manager'];?></a></li>
</ul>
<div class="tab-content" style="padding-top:20px">
diff --git a/data/web/inc/functions.quarantine.inc.php b/data/web/inc/functions.quarantine.inc.php
index 14f38b8f..e854bca3 100644
--- a/data/web/inc/functions.quarantine.inc.php
+++ b/data/web/inc/functions.quarantine.inc.php
@@ -349,16 +349,10 @@ function quarantine($_action, $_data = null) {
return $q_meta;
break;
case 'settings':
- if ($_SESSION['mailcow_cc_role'] != "admin") {
- $_SESSION['return'][] = array(
- 'type' => 'danger',
- 'log' => array(__FUNCTION__, $_action, $_data_log),
- 'msg' => 'access_denied'
- );
- return false;
- }
try {
- $settings['exclude_domains'] = json_decode($redis->Get('Q_EXCLUDE_DOMAINS'), true);
+ if ($_SESSION['mailcow_cc_role'] == "admin") {
+ $settings['exclude_domains'] = json_decode($redis->Get('Q_EXCLUDE_DOMAINS'), true);
+ }
$settings['max_size'] = $redis->Get('Q_MAX_SIZE');
$settings['retention_size'] = $redis->Get('Q_RETENTION_SIZE');
}
diff --git a/data/web/inc/header.inc.php b/data/web/inc/header.inc.php
index 15dc4f02..3353c55c 100644
--- a/data/web/inc/header.inc.php
+++ b/data/web/inc/header.inc.php
@@ -78,6 +78,7 @@
?>
<li<?= (preg_match("/admin/i", $_SERVER['REQUEST_URI'])) ? ' class="active"' : ''; ?>><a href="/admin"><?= $lang['header']['administration']; ?></a></li>
<li<?= (preg_match("/debug/i", $_SERVER['REQUEST_URI'])) ? ' class="active"' : ''; ?>><a href="/debug"><?= $lang['header']['debug']; ?></a></li>
+ <li class="divider"></li>
<?php
}
if ($_SESSION['mailcow_cc_role'] == 'admin' || $_SESSION['mailcow_cc_role'] == 'domainadmin') {
diff --git a/data/web/lang/lang.de.php b/data/web/lang/lang.de.php
index d1c646ae..1ff443b7 100644
--- a/data/web/lang/lang.de.php
+++ b/data/web/lang/lang.de.php
@@ -249,9 +249,12 @@ $lang['start']['imap_smtp_server_auth_info'] = 'Bitte verwenden Sie Ihre vollst
Ihre Anmeldedaten werden durch die obligatorische Verschlüsselung entgegen des Begriffes "PLAIN" nicht unverschlüsselt übertragen.';
$lang['start']['help'] = 'Hilfe ein-/ausblenden';
$lang['header']['mailcow_settings'] = 'Konfiguration';
-$lang['header']['administration'] = 'Administration';
-$lang['header']['mailboxes'] = 'Mailboxen';
+$lang['header']['administration'] = 'Server-Konfiguration';
+$lang['header']['mailboxes'] = 'E-Mail-Setup';
$lang['header']['user_settings'] = 'Benutzereinstellungen';
+$lang['header']['quarantine'] = "Quarantäne";
+$lang['header']['debug'] = "Systeminformation";
+$lang['quarantine']['disabled_by_config'] = "Die derzeitige Konfiguration deaktiviert die Funktion des Quarantäne-Systems.";
$lang['mailbox']['tls_policy_maps'] = 'TLS-Richtlinien';
$lang['mailbox']['tls_policy_maps_long'] = 'Ausgehende TLS-Richtlinien';
$lang['mailbox']['tls_policy_maps_info'] = 'Nachstehende Richtlinien erzwingen TLS-Transportregeln unabhängig von TLS-Richtlinieneinstellungen eines Benutzers.<br>
@@ -512,6 +515,7 @@ $lang['admin']['dkim_from_title'] = 'Quellobjekt für Duplizierung';
$lang['admin']['dkim_to_title'] = 'Ziel-Objekt(e) werden überschrieben';
$lang['admin']['dkim_domains_wo_keys'] = "Domains mit fehlenden Keys auswählen";
$lang['admin']['add'] = 'Hinzufügen';
+$lang['admin']['queue_manager'] = 'Queue Manager';
$lang['add']['add_domain_restart'] = 'Domain hinzufügen und SOGo neustarten';
$lang['add']['add_domain_only'] = 'Nur Domain hinzufügen';
$lang['admin']['configuration'] = 'Konfiguration';
@@ -656,9 +660,6 @@ $lang['warning']['fuzzy_learn_error'] = "Fuzzy Lernfehler: %s";
$lang['danger']['spam_learn_error'] = "Spam Lernfehler: %s";
$lang['success']['qlearn_spam'] = "Nachricht ID %s wurde als Spam gelernt und gelöscht";
-$lang['header']['quarantine'] = "Quarantäne";
-$lang['header']['debug'] = "Debugging";
-
$lang['debug']['log_info'] = '<p>mailcow <b>in-memory Logs</b> werden in Redis Listen gespeichert, die maximale Anzahl der Einträge pro Anwendung richtet sich nach LOG_LINES (%d).
<br>In-memory Logs sind vergänglich und nicht zur ständigen Aufbewahrung bestimmt. Alle Anwendungen, die in-memory protokollieren, schreiben ebenso in den Docker Daemon.
<br>Das in-memory Protokoll versteht sich als schnelle Übersicht zum Debugging eines Containers, für komplexere Protokolle sollte der Docker Daemon konsultiert werden.</p>
diff --git a/data/web/lang/lang.en.php b/data/web/lang/lang.en.php
index c72e54a2..fed53ea6 100644
--- a/data/web/lang/lang.en.php
+++ b/data/web/lang/lang.en.php
@@ -252,9 +252,12 @@ $lang['start']['imap_smtp_server_auth_info'] = 'Please use your full email addre
Your login data will be encrypted by the server-side mandatory encryption.';
$lang['start']['help'] = 'Show/Hide help panel';
$lang['header']['mailcow_settings'] = 'Configuration';
-$lang['header']['administration'] = 'Administration';
-$lang['header']['mailboxes'] = 'Mailboxes';
-$lang['header']['user_settings'] = 'User settings';
+$lang['header']['administration'] = 'Configuration & Details';
+$lang['header']['mailboxes'] = 'Mail Setup';
+$lang['header']['user_settings'] = 'User Settings';
+$lang['header']['quarantine'] = "Quarantine";
+$lang['header']['debug'] = "System Information";
+$lang['quarantine']['disabled_by_config'] = "The current system configuration disables the quarantine functionality.";
$lang['mailbox']['tls_policy_maps'] = 'TLS policy maps';
$lang['mailbox']['tls_policy_maps_long'] = 'Outgoing TLS policy map overrides';
$lang['mailbox']['tls_policy_maps_info'] = 'This policy map overrides outgoing TLS transport rules independently of a users TLS policy settings.<br>
@@ -494,6 +497,7 @@ $lang['admin']['rspamd-com_settings'] = '<a href="https://rspamd.com/doc/configu
- A setting name will be auto-generated, please see the example presets below.';
$lang['admin']['no_new_rows'] = 'No further rows available';
+$lang['admin']['queue_manager'] = 'Queue manager';
$lang['admin']['additional_rows'] = ' additional rows were added'; // parses to 'n additional rows were added'
$lang['admin']['private_key'] = 'Private key';
$lang['admin']['import'] = 'Import';
@@ -672,9 +676,6 @@ $lang['warning']['fuzzy_learn_error'] = "Fuzzy hash learn error: %s";
$lang['danger']['spam_learn_error'] = "Spam learn error: %s";
$lang['success']['qlearn_spam'] = "Message ID %s was learned as spam and deleted";
-$lang['header']['quarantine'] = "Quarantine";
-$lang['header']['debug'] = "Debug";
-
$lang['debug']['log_info'] = '<p>mailcow <b>in-memory logs</b> are collected in Redis lists and trimmed to LOG_LINES (%d) every minute to reduce hammering.
<br>In-memory logs are not meant to be persistent. All applications that log in-memory, also log to the Docker daemon and therefore to the default logging driver.
<br>The in-memory log type should be used for debugging minor issues with containers.</p>
diff --git a/data/web/quarantine.php b/data/web/quarantine.php
index 1ddcc669..f21f3304 100644
--- a/data/web/quarantine.php
+++ b/data/web/quarantine.php
@@ -14,6 +14,15 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
<h3 class="panel-title"><?=$lang['quarantine']['quarantine'];?></h3>
</div>
<p style="margin:10px" class="help-block"><?=$lang['quarantine']['qinfo'];?></p>
+ <p style="margin:10px">
+ <?php
+ if (empty(quarantine('settings')['retention_size']) || empty(quarantine('settings')['max_size'])):
+ ?>
+ <span class="help-block"><span class="glyphicon glyphicon-remove text-danger" style="font-size:10px"></span> <b><?=$lang['quarantine']['disabled_by_config'];?></b></span>
+ <?php
+ endif;
+ ?>
+ </p>
<div class="table-responsive">
<table id="quarantinetable" class="table table-striped"></table>
</div>
diff --git a/docker-compose.yml b/docker-compose.yml
index 616aa1b2..8942fe6e 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -95,7 +95,7 @@ services:
- rspamd
php-fpm-mailcow:
- image: mailcow/phpfpm:1.23
+ image: mailcow/phpfpm:1.24
build: ./data/Dockerfiles/phpfpm
command: "php-fpm -d date.timezone=${TZ} -d expose_php=0"
depends_on: