diff --git a/add_list.php b/add_list.php deleted file mode 100644 index 07a02be..0000000 --- a/add_list.php +++ /dev/null @@ -1,46 +0,0 @@ - 30 ) - { - // List name must not be longer than 30 characters - $_SESSION["error_code"] = 6; - header("Location: error.php"); - exit(); - } - - $domain = $_SESSION["domain"]; - shell_exec("cp -r misc/template_$language $lists_path/$domain/$list_name"); - file_put_contents("$lists_path/$domain/$list_name/control/listaddress", "$list_name@$domain"); - file_put_contents("$lists_path/$domain/$list_name/control/customheaders", "From: $list_name@$domain\nReply-To: $list_name@$domain\n"); - file_put_contents("$lists_path/$domain/$list_name/control/prefix", "[$list_name]"); - shell_exec("sed -i -e 's/_unsub_addr_/$list_name\+unsubscribe@$domain/g' $lists_path/$domain/$list_name/control/footer-*"); -} - -header("Location: index.php"); -exit(); -?> diff --git a/del_list.php b/del_list.php deleted file mode 100644 index 11021d9..0000000 --- a/del_list.php +++ /dev/null @@ -1,44 +0,0 @@ - 30 ) -{ - header("Location: error.php"); - exit(); -} - -// Test list existence -if( !is_dir("$lists_path/$domain/$list_name") ) -{ - header("Location: error.php"); - exit(); -} - -if (!isset($_SESSION["auth"]) || $_SESSION["auth"] != 1) -{ - // If not authenticated, then redirect to login page - header("Location: login.php"); - exit(); -} - -if(!empty($list_name)) -{ - shell_exec("rm -rf $lists_path/$domain/$list_name"); - header("Location: index.php"); - exit(); -} -?> diff --git a/edit_list.php b/edit_list.php index 2310ccb..18ab614 100644 --- a/edit_list.php +++ b/edit_list.php @@ -1,5 +1,7 @@ assign("headline", $headline); $smarty->assign("subscribers", $subscribers); $smarty->assign("list_name", $list_name); $smarty->assign("domain", $domain); -$smarty->assign("list_type_selected", $list_type_selected); -$smarty->assign("footer", $footer); $smarty->assign("moderators", $moderators); $smarty->assign("prefix", $prefix); -$smarty->assign("notmetoo_checked", $notmetoo_checked); +$smarty->assign("username", $_SESSION["username"]); $smarty->display("edit_list.tpl"); + ?> diff --git a/error.php b/error.php index d9b031d..93d4a66 100644 --- a/error.php +++ b/error.php @@ -1,7 +1,10 @@ assign("error_code", $error_code); $smarty->display("error.tpl"); + ?> diff --git a/index.php b/index.php index 2cfab9e..c2ad8b4 100644 --- a/index.php +++ b/index.php @@ -1,4 +1,5 @@ assign("lists", $lists); +$smarty->assign("headline", $headline); +$smarty->assign("lists", $lists_new); $smarty->assign("domain", $domain); +$smarty->assign("username", $_SESSION["username"]); $smarty->display("index.tpl"); + ?> diff --git a/init.php b/init.php index c9613ef..4022145 100644 --- a/init.php +++ b/init.php @@ -1,14 +1,103 @@ setCacheDir("misc/smarty/cache"); $smarty->setConfigDir("misc/smarty/configs"); session_start(); + ?> diff --git a/login.php b/login.php index fef121a..7fa2aae 100644 --- a/login.php +++ b/login.php @@ -1,79 +1,78 @@ display("login.tpl"); + // If no submission, display login form + $smarty->assign("headline", $headline); + $smarty->display("login.tpl"); } + ?> diff --git a/logout.php b/logout.php index 0f0f5ac..67a9c9a 100644 --- a/logout.php +++ b/logout.php @@ -1,8 +1,29 @@ diff --git a/misc/smarty/templates_c/0dee7916f2ab5d00e5d3cc848d789a3c9c535c34_0.file.index.tpl.php b/misc/smarty/templates_c/0dee7916f2ab5d00e5d3cc848d789a3c9c535c34_0.file.index.tpl.php deleted file mode 100644 index b199078..0000000 --- a/misc/smarty/templates_c/0dee7916f2ab5d00e5d3cc848d789a3c9c535c34_0.file.index.tpl.php +++ /dev/null @@ -1,122 +0,0 @@ -_decodeProperties($_smarty_tpl, array ( - 'version' => '3.1.31', - 'unifunc' => 'content_60fac2d08b3df8_25701302', - 'has_nocache_code' => false, - 'file_dependency' => - array ( - '0dee7916f2ab5d00e5d3cc848d789a3c9c535c34' => - array ( - 0 => '/home/pacs/ecg00/users/mlmmj/doms/list.ecogood.org/htdocs-ssl/mlmmj-light-web-ecg/misc/smarty/templates_en/index.tpl', - 1 => 1627046606, - 2 => 'file', - ), - ), - 'includes' => - array ( - ), -),false)) { -function content_60fac2d08b3df8_25701302 (Smarty_Internal_Template $_smarty_tpl) { -?> - - - - -> - function validate_form() - { - var name = document.getElementById('add_list_input').value; - var name = name.toLowerCase(); - - if (name == "") - { - return false; - } - - if (name.length > 30) - { - alert("Mailing list name must not be longer than 30 characters."); - return false; - } - - if ( name.match(/[^a-z0-9_]/) ) - { - alert("Mailing list name must contain only english letters, digits and undercores."); - return false; - } - } - - function confirm_delete() - { - return confirm("Are you really want to delete the mailing list?"); - } - -> - - - - -
-
- All available mailing lists: -   -
- - - You can edit mailing lists on this page. Just click on its name. - To post a message into a mailing list send an email to example@tpl_vars['domain']->value;?> -, where "example" is the list name. - -
-
- - smarty->ext->_foreach->init($_smarty_tpl, $_smarty_tpl->tpl_vars['lists']->value, 'list'); -if ($_from !== null) { -foreach ($_from as $_smarty_tpl->tpl_vars['list']->value) { -?> - - - - - - smarty->ext->_foreach->restore($_smarty_tpl, 1); -?> - -
- • - - tpl_vars['list']->value;?> - -
- -
- - -_decodeProperties($_smarty_tpl, array ( - 'version' => '3.1.31', - 'unifunc' => 'content_60fac21cabbde3_88848843', - 'has_nocache_code' => false, - 'file_dependency' => - array ( - '87eadf281c71f110fa4c4ea961640eb703d16d4a' => - array ( - 0 => '/home/pacs/ecg00/users/mlmmj/doms/list.ecogood.org/htdocs-ssl/mlmmj-light-web-ecg/misc/smarty/templates_en/error.tpl', - 1 => 1485891660, - 2 => 'file', - ), - ), - 'includes' => - array ( - ), -),false)) { -function content_60fac21cabbde3_88848843 (Smarty_Internal_Template $_smarty_tpl) { -?> - - - - - - -
- tpl_vars['error_code']->value == 1) {?> - Domain can contain only english letters, dots, hyphens and digits. - tpl_vars['error_code']->value == 2) {?> - Password can contain only english letters and digits. - tpl_vars['error_code']->value == 3) {?> - Incorrect password. - tpl_vars['error_code']->value == 4) {?> - There is no such domain. - tpl_vars['error_code']->value == 5) {?> - Mailing list name can contain only english letters, digits and undercores. - tpl_vars['error_code']->value == 6) {?> - The length of a list name can not exceed 30 characters. - tpl_vars['error_code']->value == 7) {?> - The length of a prefix can not exceed 128 characters. - tpl_vars['error_code']->value == 8) {?> - The length of a footer can not exceed 1024 characters. - tpl_vars['error_code']->value == 9) {?> - There is an incorrect email in the subscribers list. - tpl_vars['error_code']->value == 10) {?> - There is an incorrect email in the moderators list. - - Unknown error. - -
- - -_decodeProperties($_smarty_tpl, array ( - 'version' => '3.1.31', - 'unifunc' => 'content_60fac0fc392119_19400816', - 'has_nocache_code' => false, - 'file_dependency' => - array ( - 'bebbc40e386876d1f34a8c037161406e34f7e878' => - array ( - 0 => '/home/pacs/ecg00/users/mlmmj/doms/list.ecogood.org/htdocs-ssl/mlmmj-light-web-ecg/misc/smarty/templates_en/login.tpl', - 1 => 1485892620, - 2 => 'file', - ), - ), - 'includes' => - array ( - ), -),false)) { -function content_60fac0fc392119_19400816 (Smarty_Internal_Template $_smarty_tpl) { -?> - - - - -> - function validate_form() - { - var domain = document.getElementById('domain_input').value; - var password = document.getElementById('password_input').value; - - if (domain == "") - { - alert("Enter domain."); - return false; - } - - if (password == "") - { - alert("Enter password."); - return false; - } - if ( domain.match(/[^A-Za-z0-9\-\.]/) ) - { - alert("Domain can contain only english letters, dots, hyphens and digits."); - return false; - } - if ( password.match(/[^A-Za-z0-9]/) ) - { - alert("Password can contain only english letters and digits."); - return false; - } - } - -> - - - -
-
-
-
-
- Domain: -
-
- -
-
-
-
- Password: -
-
- -
-
-
- -
-
-
-
- - -_decodeProperties($_smarty_tpl, array ( - 'version' => '3.1.31', - 'unifunc' => 'content_60fac3b35e71a9_13035792', - 'has_nocache_code' => false, - 'file_dependency' => - array ( - 'd26886be440fe5530a216e22cdbebb3e8d3eb432' => - array ( - 0 => '/home/pacs/ecg00/users/mlmmj/doms/list.ecogood.org/htdocs-ssl/mlmmj-light-web-ecg/misc/smarty/templates_en/edit_list.tpl', - 1 => 1627046833, - 2 => 'file', - ), - ), - 'includes' => - array ( - ), -),false)) { -function content_60fac3b35e71a9_13035792 (Smarty_Internal_Template $_smarty_tpl) { -?> - - - - -> - // Do not use Smarty here - function switch_moderators_form() - { - // Get a selected value - var select = document.getElementById("list_type"); - var selected_value = select.options[select.selectedIndex].value; - - // If selected conference list type, then disable moderators form - if (selected_value == "2") - { - document.getElementById("moderators").disabled = true; - document.getElementById("moderators_header").style.color = "#777777"; - } - else - { - document.getElementById("moderators").disabled = false; - document.getElementById("moderators_header").style.color = "#222222"; - } - } - - function validate_form() - { - var prefix = document.getElementById('prefix').value; - var footer = document.getElementById('footer').value; - var subscribers = document.getElementById('subscribers').value; - var moderators = document.getElementById('moderators').value; - - // Regex for a valid e-mail - var re_email = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; - - // Transform subscribers and moderators into array - subscribers = subscribers.split("\n"); - moderators = moderators.split("\n"); - - if (prefix.length > 128) - { - alert("A prefix length can not be longer than 128 characters."); - return false; - } - - if (footer.length > 1024) - { - alert("A footer length can not be longer than 1024 characters."); - return false; - } - - for(var i in subscribers) - { - if ( subscribers[i] != "" && !re_email.test(subscribers[i]) ) - { - alert('Subscriber "' + subscribers[i] + '" (line #' + (parseFloat(i)+1) + ') have incorrect email.'); - return false; - } - } - - for(var i in moderators) - { - if ( moderators[i] != "" && !re_email.test(moderators[i]) ) - { - alert('Moderator "' + moderators[i] + '" (line #' + (parseFloat(i)+1) + ') have incorrect email.'); - return false; - } - } - } - // - -> - - - - -
-
- -
-
- Subscribers:  -
- - - Please, provide one email per line. Do not forget to add moderators if you - want them able to post into the mailing list. - -
-
-
- -
-
-
-
-
- - - - - - - -
-
-
- - - Prefix added to the subject field of each message. - -
-  Prefix: -
-
- -" id="prefix"> -
-
-
- -
-
-
-
-
- Moderators:  -
- - - In case of a moderated list the messages will be send to these - emails before publishing. In case of a news list only moderators can post to the mailing list. - In case of conference there are no moderators. - -
-
-
- -
-
-
-
- - -
- All available mailing lists: + All available mailing lists  
You can edit mailing lists on this page. Just click on its name. - To post a message into a mailing list send an email to example@{$domain}, where "example" is the list name. + To post a message into a mailing list send an email to example@{$domain}, where "example" is the lists name.
+ + + + + {foreach $lists as $list} - - - - - + {if $list == 1} + + + + + {/if} + {/foreach} + + + + + + + + + + + {foreach $lists as $list} + {if $list == 0} + + + + + {/if} {/foreach}
+ ★ + + Lists you own (editable) +
- • - - {$list} -
+ ✓ + + {$list@key} +
+   + +   +
+ ★ + + All other lists (not editable) +
+ ✗ + + {$list@key} +
-
diff --git a/misc/smarty/templates_en/login.tpl b/misc/smarty/templates_en/login.tpl index f8acf70..e51235a 100644 --- a/misc/smarty/templates_en/login.tpl +++ b/misc/smarty/templates_en/login.tpl @@ -4,44 +4,40 @@ - +
+

Please enter the credentials of your ECG account (without @ecogood.org).

-
-
- Domain: +
+
+ Username:
-
- +
+
@@ -52,8 +48,9 @@
+

Forgot your password?

- +
diff --git a/misc/smarty/templates_ru/edit_list.tpl b/misc/smarty/templates_ru/edit_list.tpl deleted file mode 100644 index 9cd9ea7..0000000 --- a/misc/smarty/templates_ru/edit_list.tpl +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - -
-
- -
-
- Список подписчиков:  -
- - - Добавляйте по одному почтовому адресу в каждой строке. Не забудьте добавить - модераторов, если хотите, чтобы они также могли писать в рассылку. - -
-
-
- -
-
-
-
-
- - - - - - - - - - - - - - - - -
-
-
- - - Модерируемая рассылка: подписчиков устанавливаете Вы, сообщения - от обычных участников проходят модерацию.

- Новостная рассылка: подписаться может кто угодно, отправив пустое письмо - на {$list_name}+subscribe@{$domain}, при этом подтверждение модератора не требуется. - Письма в рассылку могут отправлять только модераторы.

- Конференция: аналог канала в IRC. Подписчиков устанавливаете Вы, - сообщения может отправлять любой подписчик без модерации. -
-
-  Тип рассылки: -
-
- -
-
-
- - - Текст, добавляемый в начало заголовка каждого сообщения рассылки. - -
-  Префикс: -
-
- -
- - - -
-
-
-
- - - Отправитель будет исключён из списка рассылки для своего сообщения. - Это означает, что ему не будут приходить копии своих сообщений. - -
- - Не отправлять копию своих сообщений. -
-
-
-
-
- -
-
-
-
-
- Список модераторов:  -
- - - Для модерируемой рассылки на эти email будут отправляться письма перед их - опубликованием в рассылку. Для новостной рассылки только эти адреса могут - могут писать в рассылку. Для конференции модераторы не предумотрены. - -
-
-
- -
-
-
-
- - diff --git a/misc/smarty/templates_ru/error.tpl b/misc/smarty/templates_ru/error.tpl deleted file mode 100644 index a9b3bb2..0000000 --- a/misc/smarty/templates_ru/error.tpl +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - -
- {if $error_code == 1} - Домен может содержать только латинские буквы, точки, дефисы и цифры. - {elseif $error_code == 2} - Пароль может содержать только латинские буквы и цифры. - {elseif $error_code == 3} - Неверный пароль. - {elseif $error_code == 4} - Такой домен не зарегистрирован. - {elseif $error_code == 5} - Название рассылки может содержать только латинские буквы, цифры и символы нижнего подчёркивания. - {elseif $error_code == 6} - Длина названия рассылки не может превышать 30-ти символов. - {elseif $error_code == 7} - Длина префикса не может превышать 128-ти символов. - {elseif $error_code == 8} - Длина подписи не может превышать 1024-ти символов. - {elseif $error_code == 9} - Среди подписчиков есть некорректный e-mail. - {elseif $error_code == 10} - Среди модераторов есть некорректный e-mail. - {else} - Неизвестная ошибка. - {/if} -
- - diff --git a/misc/smarty/templates_ru/index.tpl b/misc/smarty/templates_ru/index.tpl deleted file mode 100644 index ce4cd01..0000000 --- a/misc/smarty/templates_ru/index.tpl +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - -
-
- Все листы рассылок: -   -
- - - Добавляйте и удаляйте списки рассылки с помощью данной формы. Вы можете редактировать список, кликнув по его названию. - Письмо в рассылку отправляется на адрес example@{$domain}, где example – имя рассылки. - -
-
- - {foreach $lists as $list} - - - - - - {/foreach} -
- • - - {$list} - - -
-
-
- -   - -
-
-
- - diff --git a/misc/smarty/templates_ru/login.tpl b/misc/smarty/templates_ru/login.tpl deleted file mode 100644 index b2c9613..0000000 --- a/misc/smarty/templates_ru/login.tpl +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - -
-
-
-
-
- Домен: -
-
- -
-
-
-
- Пароль: -
-
- -
-
-
- -
-
-
-
- - diff --git a/misc/template_en/control/addtohdr b/misc/template_en/control/addtohdr deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_en/control/customheaders b/misc/template_en/control/customheaders deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_en/control/delheaders b/misc/template_en/control/delheaders deleted file mode 100644 index 035e44f..0000000 --- a/misc/template_en/control/delheaders +++ /dev/null @@ -1,3 +0,0 @@ -From: -To: -Reply-To: diff --git a/misc/template_en/control/footer-html b/misc/template_en/control/footer-html deleted file mode 100644 index 79347f2..0000000 --- a/misc/template_en/control/footer-html +++ /dev/null @@ -1,2 +0,0 @@ -------
-To unsubscribe please send empty letter to _unsub_addr_ diff --git a/misc/template_en/control/footer-text b/misc/template_en/control/footer-text deleted file mode 100644 index 53f3c52..0000000 --- a/misc/template_en/control/footer-text +++ /dev/null @@ -1,2 +0,0 @@ ------- -To unsubscribe please send empty letter to _unsub_addr_ diff --git a/misc/template_en/control/listaddress b/misc/template_en/control/listaddress deleted file mode 100644 index ff00079..0000000 --- a/misc/template_en/control/listaddress +++ /dev/null @@ -1 +0,0 @@ -template@template diff --git a/misc/template_en/control/moderators b/misc/template_en/control/moderators deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_en/control/prefix b/misc/template_en/control/prefix deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_en/index b/misc/template_en/index deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_en/lastdigest b/misc/template_en/lastdigest deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_en/list_type.txt b/misc/template_en/list_type.txt deleted file mode 100644 index 573541a..0000000 --- a/misc/template_en/list_type.txt +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/misc/template_en/mlmmj-maintd.lastrun.log b/misc/template_en/mlmmj-maintd.lastrun.log deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_en/text/confirm b/misc/template_en/text/confirm deleted file mode 100644 index ae8cbdd..0000000 --- a/misc/template_en/text/confirm +++ /dev/null @@ -1,52 +0,0 @@ -%ifaction sub%Subject: Confirm subscription to $list$@$domain$%endif% -%ifaction unsub%Subject: Confirm unsubscribe from $list$@$domain$%endif% - -%text prologue% - -%ifaction sub% - %^%%wrap% - %ifreason admin% - An administrator - %endif% - %ifreason request% - Somebody (and we hope it was you) - %endif% - has requested that your email address <$subaddr$> be added - %iftype normal% - to the list. This means every time a post is sent to the list, you will - receive a copy of it. - %endif% - %iftype digest% - to the list, to receive digests. This means you will receive multiple - posts in a single mail message, at regular intervals, or when a lot of - posts have accumulated. - %endif% - %iftype nomail% - to the list, without mail delivery. This means you will not receive any - posts to the list, but you are considered a member. This means, for - instance, you are able to post to a list which only subscribers may post - to, while you follow the list using a web archive or another subscribed - email address. - %endif% -%endif% - -%ifaction unsub% - %^%%wrap% - %ifreason admin% - An administrator - %endif% - %ifreason request% - Somebody (and we hope it was you) - %endif% - has requested that the email address <$subaddr$> be removed from the list. -%endif% - -%wrap%To confirm you want to do this, please send a message to <$confaddr$> -which can usually be done simply by replying to this message. The subject -and the body of the message can be anything. - -After doing so, you should receive a reply informing you that the operation -succeeded. - -If you do not want to do this, simply ignore this message. - diff --git a/misc/template_en/text/deny b/misc/template_en/text/deny deleted file mode 100644 index e02b1be..0000000 --- a/misc/template_en/text/deny +++ /dev/null @@ -1,76 +0,0 @@ -%ifaction sub%Subject: Unable to subscribe to $list$@$domain$%endif% -%ifaction unsub%Subject: Unable to unsubscribe from $list$@$domain$%endif% -%ifaction release reject%Subject: Unable to moderate $list$@$domain$%endif% -%ifaction permit obstruct%Subject: Unable to gatekeep $list$@$domain$%endif% - -%text prologue% - -%ifaction sub% - %^%%wrap%You were unable to be subscribed to the list - %ifreason disabled% - because the - %iftype normal% normal %endif% - %iftype digest% digest %endif% - %iftype nomail% no-mail %endif% - version of the list is turned off. - %endif% - %ifreason closed% - because people are not allowed to subscribe to this list by email. - %endif% - %ifreason subbed% - because you are already subscribed. - %endif% - %ifreason expired% - because too much time passed without a gatekeeper permitting your entry. - %endif% - %ifreason obstruct% - because a gatekeeper obstructed your entry. - %endif% -%endif% - -%ifaction unsub% - %^%%wrap%You were unable to be unsubscribed from the list - %ifreason unsubbed% - because you are not subscribed. - - %^%%wrap%If you are receiving messages, perhaps a different email - address is subscribed. To find out which address you are subscribed - with, refer to the message welcoming you to the list, or look at the - envelope "Return-Path" header of a message you receive from the list. - %endif% -%endif% - -%ifaction release reject% - %^%%wrap% - %ifaction release% - You were unable to release the specified post to the list - %endif% - %ifaction reject% - You were unable to reject the specified post - %endif% - %ifreason notfound% - because it could not be found. Perhaps another moderator already - released or rejected it, or it expired. - %endif% - %ifreason moderators% - because you are not a moderator for the list. - %endif% -%endif% - -%ifaction permit obstruct% - %^%%wrap% - %ifaction permit% - You were unable to permit the specified subscription request - %endif% - %ifaction obstruct% - You were unable to obstruct the specified subscription request - %endif% - %ifreason notfound% - because it could not be found. Perhaps another gatekeeper already - permitted or obstructed it, or it expired. - %endif% - %ifreason gatekeepers% - because you are not a gatekeeper for the list. - %endif% -%endif% - diff --git a/misc/template_en/text/deny-post b/misc/template_en/text/deny-post deleted file mode 100644 index f5d604c..0000000 --- a/misc/template_en/text/deny-post +++ /dev/null @@ -1,63 +0,0 @@ -Subject: Post to $list$@$domain$ denied: $subject$ -MIME-Version: 1.0 -Content-Type: multipart/mixed; - boundary="=_$random0$$random1$_=" -Content-Transfer-Encoding: 8bit - ---=_$random0$$random1$_= -Content-Type: text/plain; charset=utf8 -Content-Transfer-Encoding: 8bit - -%text prologue% - -%wrap%The message from <$posteraddr$> with subject "$subject$" was unable to -be delivered to the list -%ifreason maxmailsize% - because it exceeded the maximum allowed message size of $maxmailsize$ - bytes. -%endif% -%ifreason tocc% - because the list address was not found in either the To: or CC: header. -%endif% -%ifreason access% - because of an access rule set up by the list administrator. -%endif% -%ifreason expired% - because too much time passed without any moderator releasing it. -%endif% -%ifreason reject% - because a moderator rejected it. -%endif% -%ifreason subonlypost% - because you are not a list subscriber. - - %ifcontrol closedlist closedlistsub% - %^%%wrap%If you wish to become a subscriber, you will need to contact a - list administrator. You can email <$list+$owner@$domain$> to contact the - list owner. - %endif% - - %^%%wrap%If you believe you are a subscriber, you are probably subscribed - with a different email address. To find out which address you are - subscribed with, refer to the message welcoming you to the list, or look - at the envelope "Return-Path" header of a message you receive from the - list. -%endif% - -%ifreason maxmailsize% - %^%(The beginning of the denied message is below.) -%else% - %^%(The denied message is below.) -%endif% - ---=_$random0$$random1$_= -Content-Type: message/rfc822 -Content-Transfer-Encoding: 8bit -Content-Disposition: inline; filename="message.eml" - -%ifreason maxmailsize% - %^%%originalmail 300% -%else% - %^%%originalmail% -%endif% ---=_$random0$$random1$_=-- diff --git a/misc/template_en/text/digest b/misc/template_en/text/digest deleted file mode 100644 index e9fa859..0000000 --- a/misc/template_en/text/digest +++ /dev/null @@ -1,5 +0,0 @@ -Subject: Digest of $list$@$domain$ issue $digestissue$ ($digestinterval$) - -Topics (messages $digestfirst$ through $digestlast$): -- %digestthreads% - diff --git a/misc/template_en/text/faq b/misc/template_en/text/faq deleted file mode 100644 index 28f22fe..0000000 --- a/misc/template_en/text/faq +++ /dev/null @@ -1,4 +0,0 @@ -Subject: Frequently asked questions of $list$@$domain$ - -Sorry, no FAQ available yet. - diff --git a/misc/template_en/text/finish b/misc/template_en/text/finish deleted file mode 100644 index 8560bae..0000000 --- a/misc/template_en/text/finish +++ /dev/null @@ -1,55 +0,0 @@ -%ifaction unsub%Subject: Goodbye from $list$@$domain$%endif% -%ifaction release reject%Subject: Moderated $list$@$domain$: $subject$%endif% -%ifaction permit obstruct%Subject: Guarded $list$@$domain$: $subaddr$%endif% -%ifaction post%Subject: Posted to $list$@$domain$: $subject$%endif% - -%text prologue% - -%ifaction unsub% - %^%%wrap% - %ifreason request% - %endif% - %ifreason confirm% - Thank you for confirming your unsubscribe. - %endif% - %ifreason admin% - An administrator has removed you from the list. - %else% - You have now been removed from the list. - %endif% -%endif% - -%ifaction release% - %^%%wrap%You have successfully released the message from <$posteraddr$> - with subject "$subject$" to the list. -%endif% - -%ifaction reject% - %^%%wrap%You have successfully rejected the message from <$posteraddr$> - with subject "$subject$". -%endif% - -%ifaction permit% - %^%%wrap%You have successfully permitted <$subaddr$> to join the list. -%endif% - -%ifaction obstruct% - %^%%wrap%You have successfully obstructed <$subaddr$> from joining the - list. -%endif% - -%ifaction post% - %^%%wrap% - %ifreason confirm% - Thank you for confirming - %endif% - %ifreason release% - A moderator has released - %endif% - %ifreason request% - Thank you for - %endif% - your post with subject "$subject$". It is now being distributed to the - list. -%endif% - diff --git a/misc/template_en/text/finish-sub b/misc/template_en/text/finish-sub deleted file mode 100644 index 64337a3..0000000 --- a/misc/template_en/text/finish-sub +++ /dev/null @@ -1,44 +0,0 @@ -Subject: Welcome to $list$@$domain$ - -%text prologue% - -%wrap% -%ifreason request% - Thank you for your request to join us. -%endif% -%ifreason confirm% - Thank you for confirming your subscription. -%endif% -%ifreason permit% - A gatekeeper has permitted you to join us. -%endif% -%ifreason switch% - Your subscription has been switched to the -%else% - %ifreason admin% - An administrator has subscribed you to the - %else% - You have now been added to the - %endif% -%endif% -%iftype normal% normal %endif% -%iftype digest% digest %endif% -%iftype nomail% no-mail %endif% -version of the list. - -%wrap%The email address you are subscribed with is <$subaddr$>. - -%ifcontrol closedlist% - %^%%wrap%If you ever wish to unsubscribe, you will need to contact a list - administrator. You can email <$list+$owner@$domain$> to contact the list - owner. -%else% - %^%%wrap%If you ever wish to unsubscribe, send a message to - <$list+$unsubscribe@$domain$> using this email address. The subject and - the body of the message can be anything. You will then receive - confirmation or further instructions. -%endif% - -%wrap%For other information and help about this list, send a message to -<$list+$help@$domain$>. - diff --git a/misc/template_en/text/gatekeep-sub b/misc/template_en/text/gatekeep-sub deleted file mode 100644 index ba46088..0000000 --- a/misc/template_en/text/gatekeep-sub +++ /dev/null @@ -1,19 +0,0 @@ -Subject: Subscription request for $list$@$domain$: $subaddr$ - -%text prologue% - -%wrap%There has been a request from <$subaddr$> to join the -%iftype normal% normal %endif% -%iftype digest% digest %endif% -%iftype nomail% no-mail %endif% -version of the list. - -%wrap%To permit this, please send a message to <$permitaddr$> which can -usually be done simply by replying to this message. - -%wrap%If you do not want to do this, either send a message to -<$obstructaddr$> or simply ignore this message. - -The following gatekeepers have received this mail: -- %gatekeepers% - diff --git a/misc/template_en/text/help b/misc/template_en/text/help deleted file mode 100644 index 3b104bc..0000000 --- a/misc/template_en/text/help +++ /dev/null @@ -1,88 +0,0 @@ -Subject: Information for $list$@$domain$ - -%text prologue% - -Here is some information about the list. - -You can subscribe to the following versions: - -- %wrap%The normal version: Every time a post is sent to the list, -subscribers receive a copy of it. -%ifcontrol closedlist closedlistsub% - Subscribe by contacting a list administrator. -%else% - Subscribe by emailing <$list+$subscribe@$domain$>. -%endif% - -%ifncontrol nodigestsub% - %^%- %wrap%The digest version: Subscribers receive multiple posts in a - single mail message, at regular intervals, or when a lot of posts have - accumulated. - %ifcontrol closedlist closedlistsub% - Subscribe by contacting a list administrator. - %else% - Subscribe by emailing <$list+$subscribe-digest@$domain$>. - %endif% -%endif% - -%ifncontrol nonomailsub% - %^%- %wrap%The no-mail version: Subscribers do not receive any posts to - the list. This means, though, they are able to post to a list which only - subscribers may post to, while they follow the list using a web archive or - another subscribed email address. - %ifcontrol closedlist closedlistsub% - Subscribe by contacting a list administrator. - %else% - Subscribe by emailing <$list+$subscribe-nomail@$domain$>. - %endif% -%endif% - -%ifcontrol submod% - %^%%wrap%The list has gatekeepers who will review subscription requests - before permitting new members. -%endif% - -%ifcontrol closedlist% - %^%%wrap%Unsubscribe by contacting a list administrator. -%else% - %^%%wrap%Unsubscribe by emailing <$list+$unsubscribe@$domain$>. -%endif% - -%wrap%Posts are made by emailing <$list$@$domain$>. - -%ifcontrol subonlypost%%ifncontrol modnonsubposts% - %^%%wrap%However, only subscribers may post to the list. -%endif%%endif% - -%ifcontrol moderated% - %^%%wrap%The list has moderators who will review all posts before - releasing them to the list. -%else% - %ifcontrol subonlypost%%ifcontrol modnonsubposts% - %^%%wrap%The list has moderators who will review posts from - non-subscribers before releasing them to the list. - %endif%%endif% -%endif% - -%ifcontrol access% - %^%%wrap%The list also has access rules which may affect who can post and - which posts are moderated. -%endif% - -%ifncontrol noget%%ifncontrol noarchive% - %^%%wrap% - %ifcontrol subonlyget% - Anyone - %else% - Subscribers - %endif% - can retrieve message number N from the list's archive by sending a message - to <$list+$get-N@$domain$> (change the N to the number of the desired - message). -%endif%%endif% - -%wrap%You can retrieve the frequently asked questions document for the list -by sending a message to <$list+$faq@$domain$>. - -%wrap%To contact the list owner, send a message to <$list+$owner@$domain$>. - diff --git a/misc/template_en/text/list b/misc/template_en/text/list deleted file mode 100644 index 52f3be8..0000000 --- a/misc/template_en/text/list +++ /dev/null @@ -1,25 +0,0 @@ -Subject: Subscribers to $list$@$domain$ - -%text prologue% - -%wrap%Here is the list of subscribers -%iftype all% - (to all versions of the list): -%else% - to the - %iftype normal% normal %endif% - %iftype digest% digest %endif% - %iftype nomail% no-mail %endif% - version of the list: -%endif% - -%iftype all normal% - %^%- %listsubs% -%endif% -%iftype all digest% - %^%- %digestsubs% -%endif% -%iftype all nomail% - %^%- %nomailsubs% -%endif% - diff --git a/misc/template_en/text/moderate-post b/misc/template_en/text/moderate-post deleted file mode 100644 index ddaa465..0000000 --- a/misc/template_en/text/moderate-post +++ /dev/null @@ -1,41 +0,0 @@ -Subject: Please moderate $list$@$domain$: $subject$ -MIME-Version: 1.0 -Content-Type: multipart/mixed; - boundary="=_$random0$$random1$_=" -Content-Transfer-Encoding: 8bit - ---=_$random0$$random1$_= -Content-Type: text/plain; charset=utf8 -Content-Transfer-Encoding: 8bit - -%text prologue% - -%wrap%A message from <$posteraddr$> with subject "$subject$" has been -submitted for posting. You are being asked to moderate -%ifreason modnonsubposts% - because the requester is not a subscriber. -%endif% -%ifreason moderated% - because this is a moderated list. -%endif% -%ifreason access% - because of an access rule. -%endif% -The message is below. - -%wrap%To release it to the list, please send a message to <$releaseaddr$> -which can usually be done simply by replying to this message. - -%wrap%If you do not want to do any of this, either send a message to -<$rejectaddr$> or simply ignore this message. - -The following moderators have received this mail: -- %moderators% - ---=_$random0$$random1$_= -Content-Type: message/rfc822 -Content-Transfer-Encoding: 8bit -Content-Disposition: inline; filename="message.eml" - -%originalmail% ---=_$random0$$random1$_=-- diff --git a/misc/template_en/text/notify b/misc/template_en/text/notify deleted file mode 100644 index 6c2876c..0000000 --- a/misc/template_en/text/notify +++ /dev/null @@ -1,41 +0,0 @@ -%ifaction sub%Subject: Subscribed to $list$@$domain$: $subaddr$%endif% -%ifaction unsub%Subject: Unsubscribed from $list$@$domain$: $subaddr$%endif% - -%text prologue% - -%ifaction sub% - %^%%wrap%The address <$subaddr$> has been subscribed to the - %iftype normal% normal %endif% - %iftype digest% digest %endif% - %iftype nomail% no-mail %endif% - version of the list - %ifreason request% - because a request to join was received. - %endif% - %ifreason confirm% - because a request to join was confirmed. - %endif% - %ifreason admin% - because an administrator commanded it. - %endif% - %ifreason permit% - because a gatekeeper permitted it. - %endif% -%endif% - -%ifaction unsub% - %^%%wrap%The address <$subaddr$> has been unsubscribed from the list - %ifreason request% - because a request to unsubscribe was received. - %endif% - %ifreason confirm% - because a request to unsubscribe was confirmed. - %endif% - %ifreason admin% - because an administrator commanded it. - %endif% - %ifreason bouncing% - because it has been bouncing for too long. - %endif% -%endif% - diff --git a/misc/template_en/text/probe b/misc/template_en/text/probe deleted file mode 100644 index 397ebbe..0000000 --- a/misc/template_en/text/probe +++ /dev/null @@ -1,11 +0,0 @@ -Subject: Bouncing messages from $list$@$domain$ - -%text prologue% - -Some messages to you could not be delivered. If you're seeing this -message it means things are back to normal, and it's merely for your -information. - -Here is the list of the bounced messages: -- %bouncenumbers% - diff --git a/misc/template_en/text/prologue b/misc/template_en/text/prologue deleted file mode 100644 index ef76595..0000000 --- a/misc/template_en/text/prologue +++ /dev/null @@ -1,2 +0,0 @@ -%wrap%Hi, this is the Mlmmj program managing the <$list$@$domain$> mailing -list. diff --git a/misc/template_en/text/wait-post b/misc/template_en/text/wait-post deleted file mode 100644 index ebe3daa..0000000 --- a/misc/template_en/text/wait-post +++ /dev/null @@ -1 +0,0 @@ -DISCARD_THIS_MAIL diff --git a/misc/template_en/text/wait-sub b/misc/template_en/text/wait-sub deleted file mode 100644 index 84df549..0000000 --- a/misc/template_en/text/wait-sub +++ /dev/null @@ -1,7 +0,0 @@ -Subject: Awaiting permission to join $list$@$domain$ - -%text prologue% - -%wrap%Your request to join the list has been received. However, the -gatekeepers are being asked to review it before permitting you to join. - diff --git a/misc/template_ru/control/addtohdr b/misc/template_ru/control/addtohdr deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_ru/control/customheaders b/misc/template_ru/control/customheaders deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_ru/control/delheaders b/misc/template_ru/control/delheaders deleted file mode 100644 index 035e44f..0000000 --- a/misc/template_ru/control/delheaders +++ /dev/null @@ -1,3 +0,0 @@ -From: -To: -Reply-To: diff --git a/misc/template_ru/control/footer-html b/misc/template_ru/control/footer-html deleted file mode 100644 index 9e15dff..0000000 --- a/misc/template_ru/control/footer-html +++ /dev/null @@ -1,2 +0,0 @@ -------
-Чтобы отписаться от рассылки, отправьте пустое письмо на _unsub_addr_ diff --git a/misc/template_ru/control/footer-text b/misc/template_ru/control/footer-text deleted file mode 100644 index b221b7c..0000000 --- a/misc/template_ru/control/footer-text +++ /dev/null @@ -1,2 +0,0 @@ ------- -Чтобы отписаться от рассылки, отправьте пустое письмо на _unsub_addr_ diff --git a/misc/template_ru/control/listaddress b/misc/template_ru/control/listaddress deleted file mode 100644 index ff00079..0000000 --- a/misc/template_ru/control/listaddress +++ /dev/null @@ -1 +0,0 @@ -template@template diff --git a/misc/template_ru/control/moderators b/misc/template_ru/control/moderators deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_ru/control/prefix b/misc/template_ru/control/prefix deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_ru/index b/misc/template_ru/index deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_ru/lastdigest b/misc/template_ru/lastdigest deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_ru/list_type.txt b/misc/template_ru/list_type.txt deleted file mode 100644 index 573541a..0000000 --- a/misc/template_ru/list_type.txt +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/misc/template_ru/mlmmj-maintd.lastrun.log b/misc/template_ru/mlmmj-maintd.lastrun.log deleted file mode 100644 index e69de29..0000000 diff --git a/misc/template_ru/text/confirm b/misc/template_ru/text/confirm deleted file mode 100644 index 4c72f47..0000000 --- a/misc/template_ru/text/confirm +++ /dev/null @@ -1,45 +0,0 @@ -%ifaction sub%Subject: Подтвердите добавление к $list$@$domain$%endif% -%ifaction unsub%Subject: Подтвердите удаление из $list$@$domain$%endif% - -%text prologue% - -%ifaction sub% - %^%%wrap% - %ifreason admin% - Администратор - %endif% - %ifreason request% - Кто-то (мы надеемся, что это были Вы) - %endif% - запросил, чтобы Ваш e-mail <$subaddr$> был добавлен - %iftype normal% - к листу рассылки. Это означает, что каждый раз, когда сообщение отправляется - в рассылку, Вы будете получать его копию. - %endif% - %iftype digest% - to the list, to receive digests. This means you will receive multiple - posts in a single mail message, at regular intervals, or when a lot of - posts have accumulated. - %endif% -%endif% - -%ifaction unsub% - %^%%wrap% - %ifreason admin% - Администратор - %endif% - %ifreason request% - Кто-то (мы надеемся, что это были Вы) - %endif% - запросил, чтобы Ваш e-mail <$subaddr$> был удалён из листа рассылки. -%endif% - -%wrap%Для того, чтобы подтвердить это, пожалуйста, отправьте сообщение на -<$confaddr$>, обычно это можно сделать, просто ответив на это письмо. Темой -и телом письма может быть что угодно. - -После этого, Вы получите сообщение, информируещее Вас об успешном окончании -операции. - -Если Вы не хотите этого, просто проигнорируйте это сообщение. - diff --git a/misc/template_ru/text/deny b/misc/template_ru/text/deny deleted file mode 100644 index e74bd21..0000000 --- a/misc/template_ru/text/deny +++ /dev/null @@ -1,35 +0,0 @@ -%ifaction sub%Subject: Невозможно подписаться на $list$@$domain$%endif% -%ifaction unsub%Subject: Невозможно отписаться от $list$@$domain$%endif% -%ifaction release reject%Subject: Невозможно модерировать $list$@$domain$%endif% - -%text prologue% - -%ifaction unsub% - %^%%wrap%Вы не можете отписаться от листа рассылки - %ifreason unsubbed% - потому что Вы не подписаны. - - %^%%wrap%Если Вы получаете сообщения, возможно, подписан другой email. - Чтобы узнать, какой адрес подписан, обратитесь к письму-приветствию - о начале подписки, либо обратите внимание на поле "Return-Path" сообщений, - которые Вы получаете из рассылки. - %endif% -%endif% - -%ifaction release reject% - %^%%wrap% - %ifaction release% - Вы не можете одобрить публикацию сообщения - %endif% - %ifaction reject% - Вы не можете запретить публикацию сообщения - %endif% - %ifreason notfound% - потому что оно не найдено. Возможно, потому что другой модератор - уже одобрил или запретил, или время ожидания истекло. - %endif% - %ifreason moderators% - потому что Вы не модератор рассылки. - %endif% -%endif% - diff --git a/misc/template_ru/text/deny-post b/misc/template_ru/text/deny-post deleted file mode 100644 index 96a938e..0000000 --- a/misc/template_ru/text/deny-post +++ /dev/null @@ -1,61 +0,0 @@ -Subject: Post to $list$@$domain$ denied: $subject$ -MIME-Version: 1.0 -Content-Type: multipart/mixed; - boundary="=_$random0$$random1$_=" -Content-Transfer-Encoding: 8bit - ---=_$random0$$random1$_= -Content-Type: text/plain; charset=utf8 -Content-Transfer-Encoding: 8bit - -%text prologue% - -%wrap%Сообщение от <$posteraddr$> с темой "$subject$" не может быть доставлено -в лист рассылки -%ifreason maxmailsize% - потому что оно превышает максимально допустимый размер в $maxmailsize$ - байт. -%endif% -%ifreason tocc% - потому что адрес листа рассылки не найден ни в поле To:, ни в поле CC:. -%endif% -%ifreason access% - из-за правил, установленных администратором. -%endif% -%ifreason expired% - потому что прошло слишком много времени и модераторы не одобрили публикацию. -%endif% -%ifreason reject% - потому что модератор отклонил его. -%endif% -%ifreason subonlypost% - потому что Вы не подписчик. - - %ifcontrol closedlist closedlistsub% - %^%%wrap%Если Вы хотите стать подписчиком, Вам следует связаться с владельцем - листа рассылки. - %endif% - - %^%%wrap%Если Вы считаете, что являетесь подписчиком, возможно, Вы подписаны - с другим адресом e-mail. Чтобы его выяснить, обратитесь к письму-приветствию, - либо обратите внимание на поле "Return-Path" сообщений, которые Вы получаете - из рассылки. -%endif% - -%ifreason maxmailsize% - %^%(Начало отклонённого сообщения приведено ниже.) -%else% - %^%(Отклонённое сообщение приведено ниже.) -%endif% - ---=_$random0$$random1$_= -Content-Type: message/rfc822 -Content-Transfer-Encoding: 8bit -Content-Disposition: inline; filename="message.eml" - -%ifreason maxmailsize% - %^%%originalmail 300% -%else% - %^%%originalmail% -%endif% ---=_$random0$$random1$_=-- diff --git a/misc/template_ru/text/finish b/misc/template_ru/text/finish deleted file mode 100644 index 19eca44..0000000 --- a/misc/template_ru/text/finish +++ /dev/null @@ -1,18 +0,0 @@ -%ifaction unsub%Subject: Вы отписались от $list$@$domain$%endif% - -%text prologue% - -%ifaction unsub% - %^%%wrap% - %ifreason request% - %endif% - %ifreason confirm% - Благодарим Вас за подтверждение удаления из листа рассылки. - %endif% - %ifreason admin% - Администратор исключил Вас из листа рассылки. - %else% - Вы были исключены из листа рассылки. - %endif% -%endif% - diff --git a/misc/template_ru/text/finish-sub b/misc/template_ru/text/finish-sub deleted file mode 100644 index 3d7b430..0000000 --- a/misc/template_ru/text/finish-sub +++ /dev/null @@ -1,30 +0,0 @@ -Subject: Добро пожаловать в $list$@$domain$ - -%text prologue% - -%wrap% -%ifreason request% - Благодарим Вас за запрос на добавление в список рассылки. -%endif% -%ifreason confirm% - Благодарим Вас за подтверждение вступления в список рассылки. -%endif% -%ifreason permit% - A gatekeeper has permitted you to join us. -%endif% -%ifreason switch% - Ваша подписка была изменена на -%else% - %ifreason admin% - Администратор подписал Вас - %else% - Вы были добавлены к - %endif% -%endif% -%iftype normal% нормальной %endif% -%iftype digest% дайджест %endif% -%iftype nomail% no-mail %endif% -версии листа. - -%wrap%Ваш e-mail, который был добавлен <$subaddr$>. - diff --git a/misc/template_ru/text/moderate-post b/misc/template_ru/text/moderate-post deleted file mode 100644 index 320c191..0000000 --- a/misc/template_ru/text/moderate-post +++ /dev/null @@ -1,41 +0,0 @@ -Subject: Необходима модерация для сообщения $list$@$domain$: $subject$ -MIME-Version: 1.0 -Content-Type: multipart/mixed; - boundary="=_$random0$$random1$_=" -Content-Transfer-Encoding: 8bit - ---=_$random0$$random1$_= -Content-Type: text/plain; charset=utf8 -Content-Transfer-Encoding: 8bit - -%text prologue% - -%wrap%Сообщение от <$posteraddr$> с темой "$subject$" было предложено -предложено к публикации. Вы должны разрешить или запретить его публикацию, -%ifreason modnonsubposts% - потому что он не подписчик. -%endif% -%ifreason moderated% - потому что это модерируемый лист. -%endif% -%ifreason access% - потому что таковы правила доступа. -%endif% -Сообщение приведено ниже. - -%wrap%Для одобрения публикации, пожалуйста, отправьте сообщение на <$releaseaddr$> -обычно это можно сделать, просто ответив на это сообщение. - -%wrap%В случае, если Вы не хотите этого, отправьте, пожалуйста, сообщение на -<$rejectaddr$> или просто проигнорируйте это письмо. - -Следующие модераторы получили это письмо: -- %moderators% - ---=_$random0$$random1$_= -Content-Type: message/rfc822 -Content-Transfer-Encoding: 8bit -Content-Disposition: inline; filename="message.eml" - -%originalmail% ---=_$random0$$random1$_=-- diff --git a/misc/template_ru/text/prologue b/misc/template_ru/text/prologue deleted file mode 100644 index acc3eac..0000000 --- a/misc/template_ru/text/prologue +++ /dev/null @@ -1 +0,0 @@ -%wrap%Здравствуйте, это программа, управляющая списком рассылки <$list$@$domain$>. diff --git a/misc/template_ru/text/wait-post b/misc/template_ru/text/wait-post deleted file mode 100644 index ebe3daa..0000000 --- a/misc/template_ru/text/wait-post +++ /dev/null @@ -1 +0,0 @@ -DISCARD_THIS_MAIL diff --git a/save_list.php b/save_list.php index 61d10e3..4622183 100644 --- a/save_list.php +++ b/save_list.php @@ -1,5 +1,7 @@ 128 ) @@ -69,14 +68,6 @@ if ( strlen($prefix) > 128 ) exit(); } -if ( strlen($footer) > 1024 ) -{ - // Footer must not be longer than 1024 characters - $_SESSION["error_code"] = 8; - header("Location: error.php"); - exit(); -} - if ($new_subscribers != NULL) { // Subscribe new subscribers and unsubscribe who is not present in the new list of subscribers @@ -111,88 +102,59 @@ if ($new_subscribers != NULL) } } -$old_list_type = file_get_contents("$lists_path/$domain/$list_name/list_type.txt"); +# --- SECURITY CHECK --- -// If list type changed -if ($new_list_type !== $old_list_type) +# Check if someone sent a manipulated POST request + +# Check whether there is a moderators file +if (file_exists("$lists_path/$domain/$list_name/control/moderators")) { - // Delete all files except three in control dir - shell_exec("cd $lists_path/$domain/$list_name/control/; \ - ls | grep -E -v '(footer-html|footer-text|listaddress|owner|delheaders|addtohdr|customheaders)' | xargs rm"); - // Create necessary files - switch ($new_list_type) + // Get a moderators list + $moderators_check = file_get_contents("$lists_path/$domain/$list_name/control/moderators"); + // Remove trailing empty symbols + $moderators_check = trim($moderators_check); + + # If theres no @ inside the file it seems to be empty + if (!preg_match("/[@]/", $moderators_check)) { - case 0: // Moderated list - shell_exec("cd $lists_path/$domain/$list_name/control/; \ - touch closedlistsub moderated subonlypost notifymod noarchive noget nosubonlydenymails \ - nodigestsub nolistsubsemail ifmodsendonlymodmoderate"); - break; - case 1: // News list - shell_exec("cd $lists_path/$domain/$list_name/control/; \ - touch moderated modonlypost noarchive nosubonlydenymails nodigestsub nomodonlydenymails \ - nolistsubsemail subonlypost ifmodsendonlymodmoderate"); - break; - case 2: // Conference list - shell_exec("cd $lists_path/$domain/$list_name/control/; \ - touch closedlistsub subonlypost noarchive noget nosubonlydenymails nodigestsub \ - nolistsubsemail"); - break; + $moderators = NULL; } - file_put_contents("$lists_path/$domain/$list_name/list_type.txt", "$new_list_type"); } - -if ($footer !== NULL) +else { - // Delete all \r symbols - $footer = str_replace("\r", "", $footer); - - file_put_contents("$lists_path/$domain/$list_name/control/footer-text", "$footer\n"); - - // Insert
- $footer = str_replace("\n", "
\n", $footer); - file_put_contents("$lists_path/$domain/$list_name/control/footer-html", "$footer\n"); + $moderators = NULL; } +# --- SECURITY CHECK --- + if ($moderators !== NULL) { - $moderators_array = explode("\n", $moderators); - $moderators_array = trim_array($moderators_array); - - // Check moderators emails - foreach ($moderators_array as $moderator) + # If theres an @ inside the new moderators variable it seems to be empty + if (preg_match("/[@]/", $moderators)) { - if ( !filter_var($moderator, FILTER_VALIDATE_EMAIL) ) + $moderators_array = explode("\n", $moderators); + $moderators_array = trim_array($moderators_array); + + // Check moderators emails + foreach ($moderators_array as $moderator) { - // Incorrect email - $_SESSION["error_code"] = 10; - header("Location: error.php"); - exit(); + if ( !filter_var($moderator, FILTER_VALIDATE_EMAIL) ) + { + // Incorrect email + $_SESSION["error_code"] = 10; + header("Location: error.php"); + exit(); + } } - } - // If this not a conference list type, then write moderators - if ($new_list_type !== "2") - { file_put_contents("$lists_path/$domain/$list_name/control/moderators", "$moderators"); } - - // If this is a news list type, create access file (only mods can post) - if ($new_list_type == "1") + else { - // Delete all \r symbols - $moderators = str_replace("\r", "", $moderators); - // Escape dots - $moderators = str_replace(".", "\.", $moderators); - // Add first allow - $moderators = "allow ^From:.*" . $moderators; - // Add all other allows - $moderators = str_replace("\n", "\nallow ^From:.*", $moderators); - // Add discard as last string - $moderators = $moderators . "\ndiscard"; - // Add .* to each allow - $moderators = str_replace("\n", ".*\n", $moderators); - // Write result - file_put_contents("$lists_path/$domain/$list_name/control/access", "$moderators"); + # Someone wants to clear the moderators list which is not allowed (yet) + #$_SESSION["error_code"] = 12; + #header("Location: error.php"); + #exit(); } } @@ -201,18 +163,54 @@ if ($prefix !== NULL) file_put_contents("$lists_path/$domain/$list_name/control/prefix", "$prefix"); } -if ($notmetoo === "checked") +# The following code section is for audit log only + +# ------------------------------------------------------------- + +# Check whether there is a moderators file +if (file_exists("$lists_path/$domain/$list_name/control/moderators")) { - shell_exec("touch $lists_path/$domain/$list_name/control/notmetoo"); + // Get a moderators list + $old_moderators = file_get_contents("$lists_path/$domain/$list_name/control/moderators"); + // Remove trailing empty symbols + $old_moderators = trim($old_moderators); + + # If theres no @ inside the file it seems to be empty + if (!preg_match("/[@]/", $old_moderators)) + { + $old_moderators = NULL; + } } else { - if ( file_exists("$lists_path/$domain/$list_name/control/notmetoo") ) + $old_moderators = NULL; +} + +// Get old prefix +$old_prefix = file_get_contents("$lists_path/$domain/$list_name/control/prefix"); +// Remove trailing empty symbols +$old_prefix = trim($old_prefix); + +# ------------------------------------------------------------- + +shell_exec('curl -X POST -H \'Content-Type: application/json\' --data \'{"alias":"ECG Notification Bot","emoji":":ghost:","text":"' . $_SESSION["username"] . ' changed list ' . $list_name . '"}\' https://chat.ecogood.org/hooks/' . $rc_webhook); + +$return = audit_log("save_list", "Old subscribers: " . json_encode($old_subscribers) . " - Old prefix: " . $old_prefix . " - Old moderators: " . json_encode($old_moderators)); +if (!$return["success"]) +{ + # If debug mode is on show error message + if ($debug) { - shell_exec("rm $lists_path/$domain/$list_name/control/notmetoo"); + echo $return["message"]; + } + else + { + shell_exec('curl -X POST -H \'Content-Type: application/json\' --data \'{"alias":"ECG Notification Bot","emoji":":ghost:","text":"' . $return["message"] . '"}\' https://chat.ecogood.org/hooks/' . $rc_webhook); } } header("Location: edit_list.php?list_name=$list_name"); + exit(); + ?> diff --git a/style.css b/style.css index 895b2ce..ad631da 100644 --- a/style.css +++ b/style.css @@ -94,24 +94,24 @@ td align-self: center; } -#domain, #password +#username, #password { width: 100%; padding-bottom: 5px; display: flex; } -#domain_left, #password_left +#username_left, #password_left { align-self: center; } -#domain_right, #password_right +#username_right, #password_right { margin-left: auto; } -#domain_input, #password_input +#username_input, #password_input { width: 170px; }