From: Baptiste Daroussin Date: Fri, 17 Apr 2026 07:44:52 +0000 (+0200) Subject: subrelease: if there are moderator defined, then deactivate subrelease X-Git-Tag: RELEASE_2_0_0~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=950e281fa6fec49f76d3dfd795a562e25e151601;p=thirdparty%2Fmlmmj.git subrelease: if there are moderator defined, then deactivate subrelease --- diff --git a/listtexts/ast/deny-post b/listtexts/ast/deny-post index e23ab818..5158e9c6 100644 --- a/listtexts/ast/deny-post +++ b/listtexts/ast/deny-post @@ -30,9 +30,9 @@ entregar a la llista %ifreason subonlypost% porque nun yes suscriptor de la llista. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %ifcontrol closedlist closedlistsub% %^%%wrap%Si quies suscribite, tendrás de comunicate con un alministrador diff --git a/listtexts/ast/wait-post b/listtexts/ast/wait-post index 6c871818..7702b783 100644 --- a/listtexts/ast/wait-post +++ b/listtexts/ast/wait-post @@ -22,9 +22,9 @@ a la llista %ifreason modnonsubposts% porque nun yes suscriptor. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %endif% (El mensaxe ta más abaxo.) diff --git a/listtexts/cs/deny-post b/listtexts/cs/deny-post index 97e2af51..14bb8270 100644 --- a/listtexts/cs/deny-post +++ b/listtexts/cs/deny-post @@ -29,9 +29,9 @@ Zpráva byla zamítnuta moderátorem konference. %ifreason subonlypost% Adresa, ze které byla zpráva zaslána, není v seznamu členů konference. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %ifcontrol closedlist closedlistsub% %^%%wrap%Pokud si přejete být členem konference kontaktujte správce. diff --git a/listtexts/cs/wait-post b/listtexts/cs/wait-post index 5401bc5c..a3a93ae8 100644 --- a/listtexts/cs/wait-post +++ b/listtexts/cs/wait-post @@ -21,9 +21,9 @@ Moderátoři konference byli kontaktováni, aby tuto zprávu schválili před za %ifreason modnonsubposts% Důvodem je, že nejste členem konference (nebo píšete zprávu z adresy, se kterou nejste v konferenci přihlášen). - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %endif% (Zpráva je uvedena níže.) diff --git a/listtexts/de/deny-post b/listtexts/de/deny-post index 88a7d695..09e73486 100644 --- a/listtexts/de/deny-post +++ b/listtexts/de/deny-post @@ -32,9 +32,9 @@ nicht über die Liste verteilt werden, %ifreason subonlypost% weil Sie die Liste nicht abonniert haben. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %ifcontrol closedlist closedlistsub% %^%%wrap%Wenn Sie die Liste abonnieren möchten, kontaktieren Sie einen diff --git a/listtexts/de/wait-post b/listtexts/de/wait-post index b53a23ba..29c76d89 100644 --- a/listtexts/de/wait-post +++ b/listtexts/de/wait-post @@ -22,9 +22,9 @@ erforderlich, %ifreason modnonsubposts% weil Sie nicht auf der Liste eingeschrieben sind. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %endif% (Die ist unten angefügt.) diff --git a/listtexts/en/deny-post b/listtexts/en/deny-post index 183814c2..e9b1f2ed 100644 --- a/listtexts/en/deny-post +++ b/listtexts/en/deny-post @@ -31,9 +31,9 @@ be delivered to the list %ifreason subonlypost% because you are not a list subscriber. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %ifcontrol closedlist closedlistsub% %^%%wrap%If you wish to become a subscriber, you will need to contact a diff --git a/listtexts/fi/deny-post b/listtexts/fi/deny-post index ff992411..be11d559 100644 --- a/listtexts/fi/deny-post +++ b/listtexts/fi/deny-post @@ -33,9 +33,9 @@ välittää postituslistalle, %ifreason subonlypost% koska et ole postituslistan tilaaja. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %ifcontrol closedlist closedlistsub% %^%%wrap%Jos haluta liittyä postituslistalle, ota yhteyttä listan diff --git a/listtexts/fi/wait-post b/listtexts/fi/wait-post index 0c6c8673..0e07b41d 100644 --- a/listtexts/fi/wait-post +++ b/listtexts/fi/wait-post @@ -22,9 +22,9 @@ on hyväksyttävä se, %ifreason modnonsubposts% koska et ole postituslistan tilaaja. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %endif% (Lähetetty viesti on alla.) diff --git a/listtexts/fr/deny-post b/listtexts/fr/deny-post index 2f05687d..86057dc3 100644 --- a/listtexts/fr/deny-post +++ b/listtexts/fr/deny-post @@ -33,9 +33,9 @@ Content-Transfer-Encoding: 8bit %ifreason subonlypost% parce que vous n'êtes pas un inscrit de la liste. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %ifcontrol closedlist closedlistsub% %^%%wrap%Si vous souhaitez vous inscrire, vous devez contacter un diff --git a/listtexts/fr/wait-post b/listtexts/fr/wait-post index abc878fe..d4211add 100644 --- a/listtexts/fr/wait-post +++ b/listtexts/fr/wait-post @@ -22,9 +22,9 @@ de le délivrer à la liste %ifreason modnonsubposts% parce que vous n'êtes pas inscrit. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %endif% (Le message apparaît ci-dessous.) diff --git a/listtexts/gr/deny-post b/listtexts/gr/deny-post index 74375804..c97409a6 100644 --- a/listtexts/gr/deny-post +++ b/listtexts/gr/deny-post @@ -32,9 +32,9 @@ Content-Transfer-Encoding: 8bit %ifreason subonlypost% καθώς δεν είστε εγγεγραμμένος στη λίστα. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %ifcontrol closedlist closedlistsub% %^%%wrap%Αν επιθυμείτε να εγγραφείτε στη λίστα ταχυδρομείου, αρκεί να diff --git a/listtexts/gr/wait-post b/listtexts/gr/wait-post index 60f36571..23eeb6f9 100644 --- a/listtexts/gr/wait-post +++ b/listtexts/gr/wait-post @@ -22,9 +22,9 @@ Content-Transfer-Encoding: 8bit %ifreason modnonsubposts% καθώς δεν είστε εγγεγραμμένος χρήστης. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %endif% (Παρακάτω ακολουθεί το μήνυμα.) diff --git a/listtexts/it/deny-post b/listtexts/it/deny-post index 07fff12c..cb293a37 100644 --- a/listtexts/it/deny-post +++ b/listtexts/it/deny-post @@ -33,9 +33,9 @@ Content-Transfer-Encoding: 8bit %ifreason subonlypost% perché non sei iscritto/a alla lista. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %ifcontrol closedlist closedlistsub% %^%%wrap%Se desideri iscriverti, devi contattare l'amministratore della diff --git a/listtexts/it/wait-post b/listtexts/it/wait-post index a1540a49..438e4550 100644 --- a/listtexts/it/wait-post +++ b/listtexts/it/wait-post @@ -22,9 +22,9 @@ di rilasciarlo, %ifreason modnonsubposts% perché non sei iscritto/a. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %endif% (Il messaggio è riportato sotto.) diff --git a/listtexts/pt/deny-post b/listtexts/pt/deny-post index d281af01..4eb97299 100644 --- a/listtexts/pt/deny-post +++ b/listtexts/pt/deny-post @@ -30,9 +30,9 @@ entregue na lista %ifreason subonlypost% porque você não faz parte da lista. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %ifcontrol closedlist closedlistsub% %^%%wrap%Se pretender subscrever a lista, tem que contactar um diff --git a/listtexts/pt/wait-post b/listtexts/pt/wait-post index be343ac5..276eee0b 100644 --- a/listtexts/pt/wait-post +++ b/listtexts/pt/wait-post @@ -22,9 +22,9 @@ lista de espera para revisão %ifreason modnonsubposts% porque você não é um subscritor. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %endif% (Mensagem segue em baixo.) diff --git a/listtexts/sk/deny-post b/listtexts/sk/deny-post index ef9c1e17..023393e4 100644 --- a/listtexts/sk/deny-post +++ b/listtexts/sk/deny-post @@ -31,9 +31,9 @@ do mailovej diskusie %ifreason subonlypost% lebo nie ste abonentom diskusie. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %ifcontrol closedlist closedlistsub% %^%%wrap%Ak sa chcete stať abonentom, kontaktujte administrátora diff --git a/listtexts/sk/wait-post b/listtexts/sk/wait-post index fcdd7b75..12842fc6 100644 --- a/listtexts/sk/wait-post +++ b/listtexts/sk/wait-post @@ -22,9 +22,9 @@ odsúhlasenie, lebo %ifreason modnonsubposts% nie ste jej abonentom. - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %endif% (Správa je pripojená.) diff --git a/listtexts/zh-cn/deny-post b/listtexts/zh-cn/deny-post index e5c4959f..25d54abd 100644 --- a/listtexts/zh-cn/deny-post +++ b/listtexts/zh-cn/deny-post @@ -29,9 +29,9 @@ Content-Transfer-Encoding: 8bit %ifreason subonlypost% 因为您不是列表订户\=。 - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %text subrelease% - %endif%%endif% + %endif%%endif%%endif% %ifcontrol closedlist closedlistsub% %^%%wrap%如果您打算成为订户\=,需要联系列表管理员\=。您可以发送邮件 diff --git a/listtexts/zh-cn/wait-post b/listtexts/zh-cn/wait-post index 4934cb4d..ea802473 100644 --- a/listtexts/zh-cn/wait-post +++ b/listtexts/zh-cn/wait-post @@ -24,9 +24,9 @@ Content-Transfer-Encoding: 8bit 需要版主审核后才能发布到该列表\=。 %ifreason modnonsubposts% - %ifncontrol closedlist%%ifncontrol closedlistsub% + %ifncontrol closedlist%%ifncontrol closedlistsub%%ifncontrol moderators% %^%%text subrelease% - %endif%%endif% + %endif%%endif%%endif% %endif% (\=下为邮件\=。\=) diff --git a/src/mlmmj-process.c b/src/mlmmj-process.c index fb7d7fbc..7e6dae18 100644 --- a/src/mlmmj-process.c +++ b/src/mlmmj-process.c @@ -218,7 +218,8 @@ static void newmoderated(struct ml *ml, const char *mailfilename, char *subreplyto = NULL; if (modreason == MODNONSUBPOSTS && !statctrl(ml->ctrlfd, "closedlist") && - !statctrl(ml->ctrlfd, "closedlistsub")) { + !statctrl(ml->ctrlfd, "closedlistsub") && + !statctrl(ml->ctrlfd, "moderators")) { char *listsubreleaseaddr; char *digestsubreleaseaddr; char *nomailsubreleaseaddr; @@ -839,7 +840,10 @@ int main(int argc, char **argv) bool closedlistsub = statctrl(ml.ctrlfd, "closedlistsub"); char *subreplyto = NULL; - if (subonlypost && !closedlist && !closedlistsub) { + bool hasmoderators = statctrl(ml.ctrlfd, "moderators"); + + if (subonlypost && !closedlist && !closedlistsub && + !hasmoderators) { char *modname; char *listsubreleaseaddr; char *digestsubreleaseaddr; diff --git a/tests/mlmmj-receive.sh b/tests/mlmmj-receive.sh index 1996b973..518370a3 100644 --- a/tests/mlmmj-receive.sh +++ b/tests/mlmmj-receive.sh @@ -33,7 +33,8 @@ tests_init \ verp \ normal_email_with_dot \ multi_line_headers \ - subrelease + subrelease \ + subrelease_with_moderators mlmmjreceive=$(command -v mlmmj-receive) @@ -134,7 +135,7 @@ DATA Subject: =?utf-8?q?Post_to_test=40mlmmjtest_denied:_subscribe?= MIME-Version: 1.0 Content-Type: multipart/mixed; - boundary + boundary Content-Transfer-Encoding: 8bit From: test+owner@mlmmjtest To: bob@test @@ -3128,9 +3129,9 @@ EOF atf_check -s exit:0 $mlmmjreceive -L list -F > expected-1.txt < XVERP=-= -QUIT +EHLO heloname +MAIL FROM: XVERP=-= +QUIT EOF atf_check -o file:expected-1.txt sed -e "/^Message-ID:/d; /^Date:/d;" mail-1.txt cat > second < list/control/listaddress + start_fakesmtp list + echo "heloname" > list/control/smtphelo + + touch list/control/subonlypost + echo "mod@test" > list/control/moderators + printf "user@test\nuser2@test" > list/subscribers.d/u + +cat > first </dev/null)" + + # Verify the deny mail was sent to the poster + atf_check -o match:"RCPT TO:" cat mail-1.txt +}