From 2ef73e2255692d1e42230ada071b80a38dd7ea94 Mon Sep 17 00:00:00 2001 From: DynamicThijs <40541903+DynamicThijs@users.noreply.github.com> Date: Wed, 3 Oct 2018 18:00:44 +0200 Subject: [PATCH 01/22] Update Dutch lang file Another little update to the Dutch lang file --- data/web/lang/lang.nl.php | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/data/web/lang/lang.nl.php b/data/web/lang/lang.nl.php index 3f87089b..f9955caa 100644 --- a/data/web/lang/lang.nl.php +++ b/data/web/lang/lang.nl.php @@ -16,6 +16,9 @@ $lang['footer']['delete_these_items'] = 'Bevestig de wijzigingen aan het volgend $lang['footer']['delete_now'] = 'Nu verwijderen'; $lang['footer']['cancel'] = 'Annuleren'; +$lang['footer']['hibp_nok'] = 'Dit is een potentieel onveilig wachtwoord!'; +$lang['footer']['hibp_ok'] = 'Dit wachtwoord is relatief veilig'; + $lang['danger']['mysql_error'] = "MySQL-fout: %s"; $lang['danger']['redis_error'] = "Redis-fout: %s"; $lang['danger']['unknown_tfa_method'] = "Onbekende tweefactorauthenticatiemethode"; @@ -41,7 +44,9 @@ $lang['danger']['value_missing'] = "Niet alle waarden zijn ingevuld"; $lang['danger']['filter_type'] = "Verkeerd filtertype"; $lang['danger']['domain_cannot_match_hostname'] = "Domein kan niet gelijk zijn aan hostname"; $lang['warning']['domain_added_sogo_failed'] = "Domein is toegevoegd, maar het hestarten van SOGo mislukte. Controleer de serverlogs."; -$lang['danger']['rl_timeframe'] = "Ratelimit time frame is incorrect"; +$lang['danger']['rl_timeframe'] = "Ratelimit-tijdsbestek is ongeldig"; +$lang['success']['rl_saved'] = "Ratelimit voor object %s is opgeslagen"; +$lang['success']['acl_saved'] = "ACL voor object %s is opgeslagen"; $lang['success']['deleted_syncjobs'] = "Synchronisatietaken %s zijn verwijderd"; $lang['success']['deleted_syncjob'] = "Synchronisatietaak %s is verwijderd"; $lang['success']['delete_filters'] = "Filters %s zijn verwijderd"; @@ -68,13 +73,14 @@ $lang['warning']['session_token'] = "Token ongeldig: komt niet overeen"; $lang['danger']['dkim_domain_or_sel_invalid'] = "DKIM-domein %s ongeldig"; $lang['success']['dkim_removed'] = "DKIM-sleutel %s is verwijderd"; -$lang['success']['dkim_added'] = "DKIM-sleutel is opgeslagen"; +$lang['success']['dkim_added'] = "DKIM-sleutel %s is opgeslagen"; +$lang['success']['dkim_duplicated'] = "DKIM-sleutel voor domein %s is gekopieerd naar %s"; $lang['danger']['access_denied'] = "Toegang geweigerd of ongeldige gegevens"; $lang['danger']['domain_invalid'] = "Domeinnaam %s is ongeldig"; $lang['danger']['mailbox_quota_exceeds_domain_quota'] = "Max. postvakquotum is groter dan domeinquotum"; $lang['danger']['object_is_not_numeric'] = "Waarde %s is niet numeriek"; $lang['success']['domain_added'] = "Domein %s is toegevoegd"; -$lang['success']['items_deleted'] = "Onderdeel %s is verwijderd"; +$lang['success']['items_deleted'] = "Onderdelen %s zijn verwijderd"; $lang['success']['item_deleted'] = "Onderdeel %s is verwijderd"; $lang['danger']['alias_empty'] = "Aliasadres moet ingevuld worden"; $lang['danger']['last_key'] = 'De laatste sleutel kan niet worden verwijderd'; @@ -247,6 +253,7 @@ $lang['mailbox']['description'] = 'Beschrijving'; $lang['mailbox']['alias'] = 'Alias'; $lang['mailbox']['aliases'] = 'Aliassen'; $lang['mailbox']['domains'] = 'Domeinen'; +$lang['admin']['domain_s'] = 'Domein(en)'; $lang['mailbox']['mailboxes'] = 'Postvakken'; $lang['mailbox']['resources'] = 'Hulpbronnen'; $lang['mailbox']['mailbox_quota'] = 'Max. grootte van een postvak'; @@ -333,6 +340,7 @@ $lang['edit']['full_name'] = 'Volledige naam'; $lang['edit']['quota_mb'] = 'Quotum (MiB)'; $lang['edit']['sender_acl'] = 'Sta toe om te verzenden als'; $lang['edit']['sender_acl_disabled'] = '↳ Verzendcontrole is uitgeschakeld'; +$lang['user']['sender_acl_disabled'] = '↳ Verzendcontrole is uitgeschakeld'; $lang['edit']['previous'] = 'Vorige pagina'; $lang['edit']['unchanged_if_empty'] = 'Laat leeg wanneer onveranderd'; $lang['edit']['dont_check_sender_acl'] = "Schakel verzendcontrole uit voor domein %s (inclusief aliasdomeinen)"; @@ -340,6 +348,22 @@ $lang['edit']['multiple_bookings'] = 'Meerdere boekingen'; $lang['edit']['kind'] = 'Soort'; $lang['edit']['resource'] = 'Hulpbron'; +$lang['acl']['spam_alias'] = 'Tijdelijke aliassen'; +$lang['acl']['tls_policy'] = 'Versleutelingsbeleid'; +$lang['acl']['spam_score'] = 'Spamscore'; +$lang['acl']['spam_policy'] = 'Blacklist/Whitelist'; +$lang['acl']['delimiter_action'] = 'Delimiter-actie'; +$lang['acl']['syncjobs'] = 'Synchronisatietaken'; +$lang['acl']['eas_reset'] = 'Herstel ActiveSync-apparaatcache'; +$lang['acl']['quarantine'] = 'Quarantaine'; +$lang['acl']['login_as'] = 'Log in als postvakgebruiker'; +$lang['acl']['bcc_maps'] = 'BCC-kaarten'; +$lang['acl']['filters'] = 'Filters'; +$lang['acl']['ratelimit'] = 'Ratelimit'; +$lang['acl']['recipient_maps'] = 'Ontvanger-kaarten'; +$lang['acl']['prohibited'] = 'Geweigerd door ACL'; + +$lang['add']['generate'] = 'genereer'; $lang['add']['syncjob'] = 'Voeg een nieuwe synchronisatietaak toe'; $lang['add']['syncjob_hint'] = 'Wees ervan bewust dat wachtwoorden onversleuteld moeten worden opgeslagen.'; $lang['add']['hostname'] = 'Hostname'; @@ -437,7 +461,13 @@ $lang['admin']['no_new_rows'] = 'Er zijn geen extra rijen beschikbaar'; $lang['admin']['additional_rows'] = ' extra rijen zijn toegevoegd'; // parses to 'n additional rows were added' $lang['admin']['private_key'] = 'Privésleutel'; $lang['admin']['import'] = 'Importeer'; +$lang['admin']['duplicate'] = 'Dupliceer'; $lang['admin']['import_private_key'] = 'Importeer privésleutel'; +$lang['admin']['duplicate_dkim'] = 'Dupliceer DKIM-sleutel'; +$lang['admin']['dkim_from'] = 'Van'; +$lang['admin']['dkim_to'] = 'Naar'; +$lang['admin']['dkim_from_title'] = 'Kopieer data van domein'; +$lang['admin']['dkim_to_title'] = 'Doeldomein(en) - worden overgeschreven'; $lang['admin']['f2b_parameters'] = 'Fail2ban parameters'; $lang['admin']['f2b_ban_time'] = 'Verbanningstijd (s)'; $lang['admin']['f2b_max_attempts'] = 'Max. pogingen'; @@ -457,6 +487,7 @@ $lang['admin']['dkim_key_unused'] = 'Sleutel ongebruikt'; $lang['admin']['dkim_key_missing'] = 'Sleutel ontbreekt'; $lang['admin']['dkim_add_key'] = 'Voeg ARC/DKIM-sleutel toe'; $lang['admin']['dkim_keys'] = 'ARC/DKIM-sleutels'; +$lang['admin']['dkim_domains_wo_keys'] = "Selecteer domeinen met ontbrekende sleutels"; $lang['admin']['add'] = 'Toevoegen'; $lang['add']['add_domain_restart'] = 'Voeg domein toe en herstart SOGo'; $lang['add']['add_domain_only'] = 'Voeg enkel domein toe'; @@ -511,7 +542,6 @@ $lang['success']['forwarding_host_added'] = "Doorstuurhost %s is toegevoegd"; $lang['success']['relayhost_removed'] = "Relayhost %s is verwijderd"; $lang['success']['relayhost_added'] = "Relayhost %s is toegevoegd"; $lang['diagnostics']['dns_records'] = 'DNS-vermeldingen'; -$lang['diagnostics']['dns_records_24hours'] = 'Please note that changes made to DNS may take up to 24 hours to correctly have their current state reflected on this page. It is intended as a way for you to easily see how to configure your DNS records and to check whether all your records are correctly stored in DNS.'; $lang['diagnostics']['dns_records_24hours'] = 'Houd er rekening mee dat veranderingen aan DNS tot wel 24 uur in beslag kunnen nemen voordat ze op deze pagina worden weergegeven. Het is bedoeld als een manier om gemakkelijk te zien hoe de DNS-vermeldingen zijn geconfigureerd en om te controleren of alle records correct zijn opgeslagen in DNS.'; $lang['diagnostics']['dns_records_name'] = 'Naam'; $lang['diagnostics']['dns_records_type'] = 'Type'; @@ -571,7 +601,6 @@ $lang['success']['reset_main_logo'] = "Het standaardlogo is hersteld"; $lang['success']['items_released'] = "Geselecteerde onderdelen zijn vrijgegeven"; $lang['success']['item_released'] = "Onderdeel %s vrijgegeven"; $lang['danger']['imagick_exception'] = "Error: Er is een probleem opgetreden met Imagick tijdens het lezen van de afbeelding"; - $lang['quarantine']['quarantine'] = "Quarantaine"; $lang['quarantine']['learn_spam_delete'] = "Onthoud als spam en verwijder"; $lang['quarantine']['qinfo'] = 'Het quarantainesysteem slaat geweigerde e-mail op, terwijl het voor de afzender als niet ontvangen bestempeld is.
"' . $lang['quarantine']['learn_spam_delete'] . '" traint het systeem om toekomstige soortgelijke e-mails direct als spam te classificeren.
Wees er van bewust dat wanneer er meerdere berichten worden onderzocht, dit mogelijk enige tijd kan duren.'; From e30486040835934e74d0da0f63d6c4de8dceb1cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9?= Date: Sat, 6 Oct 2018 22:09:05 +0200 Subject: [PATCH 02/22] [Web] Fix empty domain dropdown in race condition, fixes #1849 as workaround --- data/web/js/mailbox.js | 1 + 1 file changed, 1 insertion(+) diff --git a/data/web/js/mailbox.js b/data/web/js/mailbox.js index 8894e995..ae99ad3d 100644 --- a/data/web/js/mailbox.js +++ b/data/web/js/mailbox.js @@ -8,6 +8,7 @@ $(document).ready(function() { dataType: 'json', url: '/api/v1/get/domain/all', jsonp: false, + async: false, error: function () { domain_list.push('Cannot read domain list'); }, From 9f52cd9456744b5fd97250dc8c5ee64caee31466 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9?= Date: Sat, 6 Oct 2018 22:09:23 +0200 Subject: [PATCH 03/22] [Docker API] Fix sieve list for users, fixes #1849 --- data/Dockerfiles/dockerapi/server.py | 4 ++-- docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/Dockerfiles/dockerapi/server.py b/data/Dockerfiles/dockerapi/server.py index 17e5e0fd..a161c8a6 100644 --- a/data/Dockerfiles/dockerapi/server.py +++ b/data/Dockerfiles/dockerapi/server.py @@ -86,14 +86,14 @@ class container_post(Resource): elif request.json['cmd'] == 'sieve_list' and request.json['username']: try: for container in docker_client.containers.list(filters={"id": container_id}): - sieve_return = container.exec_run(["/bin/bash", "-c", "/usr/local/bin/doveadm sieve list -u '" + request.json['username'].replace("'", "'\\''") + "'"], user='vmail') + sieve_return = container.exec_run(["/bin/bash", "-c", "/usr/local/bin/doveadm sieve list -u '" + request.json['username'].replace("'", "'\\''") + "'"]) return sieve_return.output except Exception as e: return jsonify(type='danger', msg=str(e)) elif request.json['cmd'] == 'sieve_print' and request.json['script_name'] and request.json['username']: try: for container in docker_client.containers.list(filters={"id": container_id}): - sieve_return = container.exec_run(["/bin/bash", "-c", "/usr/local/bin/doveadm sieve get -u '" + request.json['username'].replace("'", "'\\''") + "' '" + request.json['script_name'].replace("'", "'\\''") + "'"], user='vmail') + sieve_return = container.exec_run(["/bin/bash", "-c", "/usr/local/bin/doveadm sieve get -u '" + request.json['username'].replace("'", "'\\''") + "' '" + request.json['script_name'].replace("'", "'\\''") + "'"]) return sieve_return.output except Exception as e: return jsonify(type='danger', msg=str(e)) diff --git a/docker-compose.yml b/docker-compose.yml index b8237152..d9da7d35 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -364,7 +364,7 @@ services: - watchdog dockerapi-mailcow: - image: mailcow/dockerapi:1.18 + image: mailcow/dockerapi:1.19 restart: always build: ./data/Dockerfiles/dockerapi oom_kill_disable: true From 125ce8e27ca7c0ca34e125c11698892a92ee5ba9 Mon Sep 17 00:00:00 2001 From: Michael Kuron Date: Sun, 7 Oct 2018 13:21:02 +0200 Subject: [PATCH 04/22] [web] fix relayhost test --- data/web/modals/admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/web/modals/admin.php b/data/web/modals/admin.php index 2cce623e..e4dbe2fd 100644 --- a/data/web/modals/admin.php +++ b/data/web/modals/admin.php @@ -115,7 +115,7 @@ if (!isset($_SESSION['mailcow_cc_role'])) {