diff --git a/INSTALL b/INSTALL index 2d5956f..6425656 100644 --- a/INSTALL +++ b/INSTALL @@ -7,7 +7,7 @@ OVERVIEW: 3 - configuration file 4 - compile cgi wrapper 5 - install cgi wrapper - 6 - (optional) configure access control (http authentication) + 6 - [optional] configure access control (http authentication) 7 - css stylesheet file 8 - final test diff --git a/README b/README index 2bd5780..3202bfa 100644 --- a/README +++ b/README @@ -1,6 +1,6 @@ -================= -| ezmlm-web-3.1 | -================= +=================== +| ezmlm-web-3.1.1 | +=================== If you only want to know how to install ezmlm-web, then you should read INSTALL. @@ -21,7 +21,7 @@ VIII. Bugs && Bug Reports I. Copyright Stuff - essentially the FreeBSD licence ... ================== -ezmlm-web - version 3.1 - 12/22/02005 +ezmlm-web - version 3.1.1 - 01/19/02006 Copyright (C) 1998, Guy Antony Halse, All Rights Reserved. @@ -107,6 +107,7 @@ This version of ezmlm-web requires the following; + Getopt::Std v4.1 + File::Find v? + File::Copy v2.02 + + File::Path v1.07 + Text::ParseWords v3.24 The version number indicates the version of the module that ezmlm-web was @@ -179,17 +180,19 @@ V. Notes idea. The only reason I put it in is that bvi@rucus asked for it. If you set $UNSAFE_RD = 0 (the default) in the config section, the ezmlm-web won't actually delete the list. In this case it moves the - to . and all the associated .qmail files to a sub-directory called + and all the associated .qmail files to a sub-directory called deleted.qmail/ (In the users home directory. This is by far a safer way (since you can restore lists) and therefore I recommend it. -* The HTML interface has been tested using Nutscrape, Internet Exploder, and - Lynx. If anyone uses anything else and has problems, please let me know. - * I suggest that you make use of custom ezmlmwebrc files rather than using the -d command line switches - it makes fault diagnosis easier ... -* Please see the section on languages below. +* Vpopmail users should set up different suid wrappers for every single + managed domain. + These wrappers should be accompanied by seperate ezmlmwebrc files with + different DOTQMAIL_DIR settings. + Please send me a more detailed description, if you managed to use ezmlm-web + with this kind of setup :) VI. Multi-Level Access @@ -236,7 +239,7 @@ VII. Language Portablity ========================= One of the great new features of version 2.0 is that it is essentially language independant. All of the fixed strings, help, etc is defined in the -files of lang directory. Of course you can change them or create a new +files of the lang directory. Of course you can change them or create a new translation. The language can be selected in ezmlmwebrc with the "HTML_LANGUAGE" option. diff --git a/TODO b/TODO index 791c360..f7c0449 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,5 @@ ezmlm-idx5: modsub and modpost are ignored, if the flag is not set -check relevance of "t", "f" and "x" flag for idx5 - "cancel" button during text editing (simple "reset" input button) restore user input after failed list_create (especially options) @@ -10,8 +8,7 @@ support for: * show subscription log * 'mailinglist' (maybe) * config directory (maybe) - -allow dynamic addition of user-made config templates (seperate directory, ...) + * gpg-ezmlm (defenitely) interface language switch support choose basic/expert to disable questions diff --git a/UPGRADING b/UPGRADING index e768312..acf5989 100644 --- a/UPGRADING +++ b/UPGRADING @@ -2,6 +2,15 @@ This file contains some useful hints for upgrading from a previous version of ez ############################################################################## +UPGRADING ezmlm-web 3.1 to ezmlm-web 3.1.4 + +1) install the perl module File::Path + +2) a new (optional) configuration setting is available: DOTQMAIL_DIR +Use it, if you run a multi domain vpopmail setup. + +------------------------------------------------------------------------------ + UPGRADING ezmlm-web 3.0 to ezmlm-web 3.1 1) update the perl module Mail::Ezmlm to v0.07 diff --git a/changelog b/changelog index 5938852..bbb7e91 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,21 @@ +Version 3.1.4 - 03/26/02006 + * new setting: DOTQMAIL_DIR (useful for multi domain vpopmail setups) + [suggested by Maurits Lamers] + * minor stylesheet change (circumvents IE rendering bug) + * case-insensitive check for mime type during address file upload + +Version 3.1.3 - 02/22/02006 + * fixed removal of dotqmail files + +Version 3.1.2 - 02/15/02006 + * honour DEFAULT_OPTIONS for new lists + * fixed portability issue of the suid-wrapper + +Version 3.1.1 - 01/19/02006 + * more careful removal of dotmail files + * allow dots in webuser names + * allow underscores in descriptive listname + Version 3.1 - 01/14/02006 * fully compatible with ezmlm-idx v5.0 * change language of list (idx >= 5.0) diff --git a/css/default.css b/css/default.css index ca149dd..a519ee3 100644 --- a/css/default.css +++ b/css/default.css @@ -106,11 +106,11 @@ font.feature { } #main_content fieldset.form form ul { - padding-left: 1%; + padding-left: 10px; } #main_content fieldset.form form ul li ul { - padding-left: 3%; + padding-left: 25px; } #main_content table.list_select { diff --git a/debian-related/DEBIAN/control b/debian-related/DEBIAN/control index 17f6fc8..380d589 100644 --- a/debian-related/DEBIAN/control +++ b/debian-related/DEBIAN/control @@ -1,5 +1,5 @@ Package: ezmlm-web -Version: 3.1-3 +Version: 3.1.1-1 Section: admin Priority: extra Architecture: all @@ -16,5 +16,6 @@ Description: Web interface for ezmlm-idx mailing list administration * qmail - http://cr.yp.to/qmail.html * ezmlm-idx - http://ezmlm.org/ * clearsilver for perl (>= 0.10.2) - http://www.clearsilver.net/downloads/ - * some perl modules (see README.Debian) + * Mail::Ezmlm perl module via cpan or as debian package from + https://systemausfall.org/toolforge/debian diff --git a/ezmlm-web.cgi b/ezmlm-web.cgi index da2ade2..d8d2d2c 100755 --- a/ezmlm-web.cgi +++ b/ezmlm-web.cgi @@ -1,6 +1,6 @@ #!/usr/bin/perl #=========================================================================== -# ezmlm-web.cgi - version 3.1 +# ezmlm-web.cgi - version 3.1.1 # ========================================================================== # All user configuration happens in the config file ``ezmlmwebrc'' # POD documentation is at the end of this file @@ -15,6 +15,7 @@ use ClearSilver; use Mail::Ezmlm; use Mail::Address; use File::Copy; +use File::Path; use DB_File; use CGI; use IO::File; @@ -42,7 +43,7 @@ my @tmp = getpwuid($>); use vars qw[$USER]; $USER=$tmp[0]; use vars qw[$HOME_DIR]; $HOME_DIR=$tmp[7]; use vars qw[$DEFAULT_OPTIONS $UNSAFE_RM $ALIAS_USER $LIST_DIR]; -use vars qw[$QMAIL_BASE $PRETTY_NAMES]; +use vars qw[$QMAIL_BASE $PRETTY_NAMES $DOTQMAIL_DIR]; use vars qw[$FILE_UPLOAD $WEBUSERS_FILE $MAIL_DOMAIN $HTML_TITLE]; use vars qw[$HTML_CSS_FILE $TEMPLATE_DIR $LANGUAGE_DIR $HTML_LANGUAGE]; @@ -75,11 +76,15 @@ if(defined($opt_d)) { $LIST_DIR = $1 if ($opt_d =~ /^([-\@\w.\/]+)$/); } -# If WEBUSERS_FILE is not defined in ezmlmwebrc (as before version 2.2), then use former default value for compatibility +# If WEBUSERS_FILE is not defined in ezmlmwebrc (as before version 2.2), +# then use former default value for compatibility if (!defined($WEBUSERS_FILE)) { $WEBUSERS_FILE = $LIST_DIR . '/webusers' } +# check for non-default dotqmail directory +$DOTQMAIL_DIR = $HOME_DIR unless defined($DOTQMAIL_DIR); + # check optional stylesheet $HTML_CSS_FILE = '' unless defined($HTML_CSS_FILE); @@ -150,7 +155,6 @@ elsif ($action eq '' || $action eq 'list_select') { } } elsif ($action eq 'list_delete_do') { # User really wants to delete a list ... - warn "do it"; if (defined($q->param('list'))) { $success = 'DeleteList' if (&delete_list()); } else { @@ -292,6 +296,14 @@ sub load_hdf { $hdf->setValue("TemplateDir", "$TEMPLATE_DIR/"); &fatal_error("Language data dir ($LANGUAGE_DIR) not found!") unless (-e $LANGUAGE_DIR); $hdf->setValue("LanguageDir", "$LANGUAGE_DIR/"); + + my $ui_set = 'default'; + my $ui_template = "normal"; + &fatal_error("UI template file not found") unless (-e "$TEMPLATE_DIR/ui/$ui_set/${ui_template}.hdf"); + $hdf->setValue("Config.UI.LinkAttrs.web_lang", $HTML_LANGUAGE); + $hdf->setValue("Config.UI.LinkAttrs.template", $ui_template); + $hdf->readFile("$TEMPLATE_DIR/ui/$ui_set/${ui_template}.hdf"); + $hdf->setValue("ScriptName", $ENV{'SCRIPT_NAME'}); $hdf->setValue("Stylesheet", "$HTML_CSS_FILE"); $hdf->setValue("Config.PageTitle", "$HTML_TITLE"); @@ -322,7 +334,12 @@ sub output_page { $cs->parseFile($pagefile); - print $cs->render(); + my $output; + if ($output = $cs->render()) { + print $output; + } else { + &fatal_error($cs->displayError()); + } } # --------------------------------------------------------------------------- @@ -567,7 +584,6 @@ sub set_pagedata4options { for ($i=0; $i<=9; $i++) { unless (($i eq 1) || ($i eq 2)) { - # TODO: maybe add "-" to the pattern to avoid strange directory settings ending in a digit :) $state = ($options =~ /\s-$i (?:'(.+?)')/); unless ($state) { # set default values @@ -613,11 +629,54 @@ sub get_list_part # --------------------------------------------------------------------------- +sub get_dotqmail_files { + my ($list, @files, $qmail_prefix); + + $list = new Mail::Ezmlm("$LIST_DIR/" . $q->param('list')); + + # get the location of the dotqmail files of the list + # read 'dot' for idx v5 + $qmail_prefix = $list->getpart('dot'); + # untaint content (we trust in it) + if ($qmail_prefix) { + $qmail_prefix =~ m/^(.*)$/; + $qmail_prefix = $1; + } + # read 'config' (line starts with "T") for idx v4 + unless ($qmail_prefix) { + my $config = $list->getpart('config'); + $config =~ m/^T:(.*)$/m; + $qmail_prefix = $1; + } + chomp($qmail_prefix); + + # return without result and print a warning, if no dotqmail files were found + unless ($qmail_prefix) { + warn "[ezmlm-web]: could not get the location of the dotqmail files of this list"; + return (); + } + + # get list of existing files (remove empty entries) + @files = grep {/./} map { (-e "$qmail_prefix$_")? "$qmail_prefix$_" : undef } ( + '', + '-default', + '-owner', + '-return-default', + '-reject-default', + '-accept-default', + '-confirm-default', + '-discard-default', + '-digest-owner', + '-digest', + '-digest-return-default'); + return @files; +} + +# --------------------------------------------------------------------------- + sub delete_list { # Delete a list ... - # Fixes a bug from the previous version ... when the .qmail file has a - # different name to the list. We use outlocal to handle vhosts ... my ($list, $listaddress, $listadd); $list = new Mail::Ezmlm("$LIST_DIR/" . $q->param('list')); if ($listadd = $list->getpart('outlocal')) { @@ -641,41 +700,46 @@ sub delete_list { $SAFE_DIR .= '/' . $q->param('list') . "-$i"; - my ($oldfile); $oldfile = "$LIST_DIR/" . $q->param('list'); + my @files = &get_dotqmail_files(); + + # remove list directory + my $oldfile = "$LIST_DIR/" . $q->param('list'); unless (move($oldfile, $SAFE_DIR)) { $warning = 'SafeRemoveRenameDirFailed'; return (1==0); } - unless (opendir(DIR, "$HOME_DIR")) { - $warning = 'DotQmailDirAccessDenied'; - return (1==0); - } - # TODO: this could possibly move some qmail files of other lists - improve it! - my @files = map { "$HOME_DIR/$1" if m{^(\.qmail.+)$} } grep { /^\.qmail-$listaddress/ } readdir DIR; - closedir DIR; + # remove dotqmail files foreach (@files) { unless (move($_, "$SAFE_DIR")) { $warning = 'SafeRemoveMoveDotQmailFailed'; return (1==0); } } + warn "List '$oldfile' moved (deleted)"; } else { # This, however, does DELETE the list. I don't like the idea, but I was # asked to include support for it so ... - unless (rmtree("$LIST_DIR/" . $q->param('list'))) { + my @files = &get_dotqmail_files(); + my $olddir = $q->param('list'); + # untaint list directory name + $olddir =~ m#^([^/]*)$#; + $olddir = $1; + # first: check for invalid list directory + unless (($olddir ne '') && ($olddir ne '.' ) && ($olddir ne '..')) { $warning = 'UnsafeRemoveListDirFailed'; return (1==0); } - opendir(DIR, "$HOME_DIR") or &fatal_error("Unable to get directory listing: $!"); - my @files = map { "$HOME_DIR/$1" if m{^(\.qmail.+)$} } grep { /^\.qmail-$listaddress/ } readdir DIR; - closedir DIR; if (unlink(@files) <= 0) { $warning = 'UnsafeRemoveDotQmailFailed'; return (1==0); } - warn "List '$list->thislist()' deleted"; + unless (File::Path::rmtree("$LIST_DIR/$olddir")) { + $warning = 'UnsafeRemoveListDirFailed'; + return (1==0); + } + warn "List '" . $list->thislist() . "' deleted"; } $q->param(-name=>'list', -values=>''); } @@ -748,8 +812,9 @@ sub add_address { # Sanity check my $fileinfo = $q->uploadInfo($q->param('mailaddressfile')); my $filetype = $fileinfo->{'Content-Type'}; - unless($filetype =~ m{^text/}) { + unless($filetype =~ m{^text/}i) { $warning = 'InvalidFileFormat'; + warn "[ezmlm-web] mime type of uploaded file rejected: $filetype"; return (1==0); } @@ -882,7 +947,7 @@ sub create_list { # Some taint checking ... $qmail = $1 if $q->param('inlocal') =~ /(?:$USER-)?([^\<\>\\\/\s]+)$/; $listname = $q->param('list'); - if ($listname =~ m/[^\w\.-]/) { + if ($listname =~ m/[^\w\._\-]/) { $warning = 'InvalidListName'; return (1==0); } @@ -904,7 +969,7 @@ sub create_list { $warning = 'ListNameAlreadyExists'; return (1==0); } - if (-e "$HOME_DIR/.qmail-$qmail") { + if (-e "$DOTQMAIL_DIR/.qmail-$qmail") { $warning = 'ListAddressAlreadyExists'; return (1==0); } @@ -914,7 +979,7 @@ sub create_list { my($list) = new Mail::Ezmlm; unless ($list->make(-dir=>"$LIST_DIR/$listname", - -qmail=>"$HOME_DIR/.qmail-$qmail", + -qmail=>"$DOTQMAIL_DIR/.qmail-$qmail", -name=>$q->param('inlocal'), -host=>$q->param('inhost'), -switches=>$options, @@ -950,14 +1015,20 @@ sub extract_options_from_params() { # Work out the command line options ... my ($options, $avail_options, $settings, $avail_settings, $i); - my ($listname, $list, $old_options, $state, $old_key); + my ($listname, $old_options, $state, $old_key); # NOTE: we have to define _every_ (even unchanged) setting # as ezmlm-make removes any undefined value $listname = $q->param('list'); - $list = new Mail::Ezmlm("$LIST_DIR/$listname"); - $old_options = $list->getconfig(); + if (-e "$LIST_DIR/$listname") { + # the list does already exist + my $list = new Mail::Ezmlm("$LIST_DIR/$listname"); + $old_options = $list->getconfig(); + } else { + # creating a new list + $old_options = $DEFAULT_OPTIONS; + } ################ options ################ $i = 0; @@ -1140,7 +1211,7 @@ sub update_webusers { my $listname = $q->param('list'); my $webusers_filtered = $q->param('webusers'); # remove any insecure characters (e.g. a line break :)) - $webusers_filtered =~ s/[^\w_,-]/ /gs; + $webusers_filtered =~ s/[^\w,_\.\-]/ /gs; open(TMP, "<$temp_file"); unless (open(WU, ">$WEBUSERS_FILE")) { warn "the webusers file ($WEBUSERS_FILE) is not writable"; @@ -1272,26 +1343,6 @@ sub check_language { # --------------------------------------------------------------------------- -sub rmtree { - # A subroutine to recursively delete a directory (like rm -f). - # Based on the one in the perl cookbook :) - - use File::Find qw(finddepth); - File::Find::finddepth sub { - # assume that File::Find::name is secure since it only uses data we pass it - my($name) = $File::Find::name =~ m{^(.+)$}; - - if (!-l && -d _) { - rmdir($name) or warn "couldn't rmdir $name: $!"; - } else { - unlink($name) or warn "couldn't unlink $name: $!"; - } - }, @_; - 1; -} - -# ------------------------------------------------------------------------ - sub fatal_error() { my $text = shift; diff --git a/ezmlmwebrc b/ezmlmwebrc index 7f6d6ac..0f96c27 100644 --- a/ezmlmwebrc +++ b/ezmlmwebrc @@ -12,6 +12,12 @@ # This directory will automatically be created if needed. $LIST_DIR = "$HOME_DIR/lists"; +# Where do we store the dotqmail files of this user? +# (defaults to the home directory of the executing user) +# You will have to change this value, if you use a multi domain +# vpopmail setup. Otherwise just leave the setting turned off. +#$DOTQMAIL_DIR = '/home/vpopmail/domain'; + # Where is the webusers file for access-permissions # defaults to "$LIST_DIR/webusers" $WEBUSERS_FILE = "$LIST_DIR/webusers"; diff --git a/index.c b/index.c index 3ba9cc1..b35b406 100644 --- a/index.c +++ b/index.c @@ -1,6 +1,7 @@ -/* $Id: index.c,v 1.2 2000/09/25 18:14:12 guy Exp $ */ +/* $Id$ */ #include +#include /* C wrapper to allow ezmlm-web.cgi to run suid */ /* Copyright (C) 1999/2000, Guy Antony Halse, All Rights Reserved */ @@ -8,18 +9,26 @@ int main(void) { /* Change this path to wherever you decided to put ezmlm-web.cgi */ - execv("/usr/local/bin/ezmlm-web.cgi"); + execv("/usr/local/bin/ezmlm-web.cgi", NULL); + + /* Note that you could also use the following to allow a specific user + to store their mailing lists and configuration file in a different + location. This overrides the default. + + ezmlm-web.cgi understands the following parameters: + -C /path/to/config.file + -d /path/to/list/directory + + See README for the default values. */ - /* Note that you could also use the following to allow a specific user - to store their mailing lists in a different directory defined by - /tmp/ezmlm-web-demo ... This over-rides the default . */ - /* Look at the exec(3) man page if you don't understand how the arguments - list below works */ + /* Look at the exec(3) man page if you don't understand how the arguments + list below works */ + + /* + char *switches[] = { "ezmlm-web.cgi", "-d", "/tmp/ezmlm-web-demo", NULL }; + execv("/usr/local/bin/ezmlm-web.cgi", switches); + */ - /* - char *switches[] = { "ezmlm-web.cgi", "-d", "/tmp/ezmlm-web-demo", NULL }; - execv("/usr/local/bin/ezmlm-web.cgi", switches); - */ } diff --git a/spec/hdf-spec.txt b/spec/hdf-spec.txt index 8548fd2..ee6bbfc 100644 --- a/spec/hdf-spec.txt +++ b/spec/hdf-spec.txt @@ -4,6 +4,8 @@ LanguageDir Stylesheet HelpIconURL Config.Title +Config.UI.LinkAttrs.web_lang +Config.UI.LinkAttrs.template Data.Action Data.areDefaultTextsAvailable diff --git a/spec/release-policy.txt b/spec/release-policy.txt index a2d1778..556e37f 100644 --- a/spec/release-policy.txt +++ b/spec/release-policy.txt @@ -1,10 +1,13 @@ 1) update version number + * changelog * README * ezmlm-web.cgi * UPGRADING * template/footer.cs + * debian-related/changelog.Debian + * debian-related/DEBIAN/control -2) update changelog +2) create new tag 3) create tar.gz ./make-tar.sh X.Y.Z @@ -17,3 +20,4 @@ scp XYZ.deb uml-bastelecke@systemausfall.org:/data/deb-repo/incoming/unstable 6) update website + diff --git a/template/config_admin.cs b/template/config_admin.cs index 2e557ce..2a66b95 100644 --- a/template/config_admin.cs +++ b/template/config_admin.cs @@ -9,30 +9,16 @@
-
+ " enctype="application/x-www-form-urlencoded"> -
    + - -
  • -
      - -
    • + + - -
    • - - -
    • ()
    • -
  • - -
  • - - - -
  • -
+ +
diff --git a/template/config_all.cs b/template/config_all.cs index d4d84bb..56bdee9 100644 --- a/template/config_all.cs +++ b/template/config_all.cs @@ -9,176 +9,16 @@
-
+ " enctype="application/x-www-form-urlencoded"> -
    + - -
  • + + - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - - -
  • - - -
  • - - -
  • - - -
  • - - -
  • ()
  • - - -
  • -
    • -
  • - - -
  • - - -
    • -
  • - - -
  • 0 ?>checked="checked" /> - -
  • -
  • 0 ?>checked="checked" /> - -
  • - - -
  • -
      - -
    • :
      -
    • -
    • :
      -
    • -
  • - - -
  • :
    -
  • - - -
  • :
    -
  • - - - 0 ?> -
  • -
  • - - - -
  • - -
  • - - - -
  • -

    • -
  • - -
  • - - - -
  • -
+ +
diff --git a/template/config_archive.cs b/template/config_archive.cs index 4cc588b..792836f 100644 --- a/template/config_archive.cs +++ b/template/config_archive.cs @@ -9,33 +9,16 @@
-
+ " enctype="application/x-www-form-urlencoded"> -
    - - -
  • -
      - -
    • - - -
    • + - -
    • -
  • + + - -
  • - -
  • - - - -
  • -
+ +
diff --git a/template/config_main.cs b/template/config_main.cs index 2b37f54..12e1043 100644 --- a/template/config_main.cs +++ b/template/config_main.cs @@ -9,60 +9,16 @@
-
+ " enctype="application/x-www-form-urlencoded"> -
    + - - 0 ?> -
  • -
  • + + - - -
  • - -
  • - - -
  • - - -
  • - - -
  • - - -
  • - - - -
  • - - - -
  • -

    • -
  • - -
  • - - - -
  • -
+ +
diff --git a/template/config_options/admin_edit_text.cs b/template/config_options/admin_edit_text.cs index 892fdc5..9ba72b1 100644 --- a/template/config_options/admin_edit_text.cs +++ b/template/config_options/admin_edit_text.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/admin_allow.cs b/template/config_options/admin_enabled.cs similarity index 52% rename from template/config_options/admin_allow.cs rename to template/config_options/admin_enabled.cs index 3ee1775..1559e94 100644 --- a/template/config_options/admin_allow.cs +++ b/template/config_options/admin_enabled.cs @@ -1,3 +1,3 @@ + - diff --git a/template/config_options/admin_get_subscribers.cs b/template/config_options/admin_get_subscribers.cs index 20bd22e..d273000 100644 --- a/template/config_options/admin_get_subscribers.cs +++ b/template/config_options/admin_get_subscribers.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/admin_path.cs b/template/config_options/admin_path.cs new file mode 100644 index 0000000..f0b40f9 --- /dev/null +++ b/template/config_options/admin_path.cs @@ -0,0 +1,7 @@ + + + + () + diff --git a/template/config_options/archive_deny_unknown.cs b/template/config_options/archive_deny_unknown.cs new file mode 100644 index 0000000..06369f1 --- /dev/null +++ b/template/config_options/archive_deny_unknown.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/config_options/archive_enabled.cs b/template/config_options/archive_enabled.cs new file mode 100644 index 0000000..36ce0ae --- /dev/null +++ b/template/config_options/archive_enabled.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/config_options/archive_mod_only.cs b/template/config_options/archive_mod_only.cs new file mode 100644 index 0000000..1df6b72 --- /dev/null +++ b/template/config_options/archive_mod_only.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/config_options/archive_public.cs b/template/config_options/archive_remove_private_header.cs similarity index 52% rename from template/config_options/archive_public.cs rename to template/config_options/archive_remove_private_header.cs index 05de0e0..64b169c 100644 --- a/template/config_options/archive_public.cs +++ b/template/config_options/archive_remove_private_header.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/block_deny.cs b/template/config_options/block_deny.cs index eb6c5dd..2a81dca 100644 --- a/template/config_options/block_deny.cs +++ b/template/config_options/block_deny.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/block_nonmod_post.cs b/template/config_options/block_nonmod_post.cs index fa73c82..e5c710e 100644 --- a/template/config_options/block_nonmod_post.cs +++ b/template/config_options/block_nonmod_post.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/block_others_archive.cs b/template/config_options/block_others_archive.cs index 75f1122..06369f1 100644 --- a/template/config_options/block_others_archive.cs +++ b/template/config_options/block_others_archive.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/block_others_post.cs b/template/config_options/block_others_post.cs index 2e15fe8..f2fd580 100644 --- a/template/config_options/block_others_post.cs +++ b/template/config_options/block_others_post.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/charset_select.cs b/template/config_options/charset_select.cs new file mode 100644 index 0000000..3343a13 --- /dev/null +++ b/template/config_options/charset_select.cs @@ -0,0 +1,7 @@ + + + + + diff --git a/template/config_options/confirm_post.cs b/template/config_options/confirm_post.cs index e4cad2a..7621081 100644 --- a/template/config_options/confirm_post.cs +++ b/template/config_options/confirm_post.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/confirm_sub.cs b/template/config_options/confirm_sub.cs index ad820b0..05190b4 100644 --- a/template/config_options/confirm_sub.cs +++ b/template/config_options/confirm_sub.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/confirm_unsub.cs b/template/config_options/confirm_unsub.cs index 6ca0a3f..60f16bf 100644 --- a/template/config_options/confirm_unsub.cs +++ b/template/config_options/confirm_unsub.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/create_listaddress.cs b/template/config_options/create_listaddress.cs new file mode 100644 index 0000000..eee4b84 --- /dev/null +++ b/template/config_options/create_listaddress.cs @@ -0,0 +1,5 @@ + + @ diff --git a/template/config_options/create_listname.cs b/template/config_options/create_listname.cs new file mode 100644 index 0000000..6ada9c1 --- /dev/null +++ b/template/config_options/create_listname.cs @@ -0,0 +1,2 @@ + + diff --git a/template/config_options/digest_enabled.cs b/template/config_options/digest_enabled.cs new file mode 100644 index 0000000..61a8f29 --- /dev/null +++ b/template/config_options/digest_enabled.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/config_options/digest_settings.cs b/template/config_options/digest_settings.cs new file mode 100644 index 0000000..b38df51 --- /dev/null +++ b/template/config_options/digest_settings.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/config_options/from_address.cs b/template/config_options/from_address.cs index 51e28a7..9d702bc 100644 --- a/template/config_options/from_address.cs +++ b/template/config_options/from_address.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/headeradd.cs b/template/config_options/headeradd.cs index 56356e2..2342a54 100644 --- a/template/config_options/headeradd.cs +++ b/template/config_options/headeradd.cs @@ -1,3 +1,4 @@ + :
  • + + + + :
    + + diff --git a/template/config_options/mimeremove.cs b/template/config_options/mimeremove.cs index 6b8a58a..3ff2ce0 100644 --- a/template/config_options/mimeremove.cs +++ b/template/config_options/mimeremove.cs @@ -1,5 +1,8 @@ - -:
    - + + + + :
    + + diff --git a/template/config_options/mod_post.cs b/template/config_options/mod_post.cs index a1c98d7..d28019f 100644 --- a/template/config_options/mod_post.cs +++ b/template/config_options/mod_post.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/mod_post_path.cs b/template/config_options/mod_post_path.cs index e06b7ac..04e4a81 100644 --- a/template/config_options/mod_post_path.cs +++ b/template/config_options/mod_post_path.cs @@ -1,2 +1,5 @@ - - + + + + + diff --git a/template/config_options/mod_sub.cs b/template/config_options/mod_sub.cs index 64a088d..28446b9 100644 --- a/template/config_options/mod_sub.cs +++ b/template/config_options/mod_sub.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/mod_sub_path.cs b/template/config_options/mod_sub_path.cs index b5f61ef..dbd8376 100644 --- a/template/config_options/mod_sub_path.cs +++ b/template/config_options/mod_sub_path.cs @@ -1,2 +1,5 @@ - - + + + + + diff --git a/template/config_options/msgsize_max.cs b/template/config_options/msgsize_max.cs index ec1af43..715db95 100644 --- a/template/config_options/msgsize_max.cs +++ b/template/config_options/msgsize_max.cs @@ -1,3 +1,4 @@ + - + + + + diff --git a/template/config_options/owner_address.cs b/template/config_options/owner_address.cs index 3ff9f47..6daa209 100644 --- a/template/config_options/owner_address.cs +++ b/template/config_options/owner_address.cs @@ -1,2 +1,3 @@ + diff --git a/template/config_options/prefix.cs b/template/config_options/prefix.cs index 26372ea..1cdb7f4 100644 --- a/template/config_options/prefix.cs +++ b/template/config_options/prefix.cs @@ -1,3 +1,4 @@ +
    • diff --git a/template/config_options/trailer.cs b/template/config_options/trailer.cs index 0f2e090..1bcb078 100644 --- a/template/config_options/trailer.cs +++ b/template/config_options/trailer.cs @@ -1,7 +1,8 @@ + -
      • diff --git a/template/config_options/warn_remove.cs b/template/config_options/warn_remove.cs new file mode 100644 index 0000000..0faee24 --- /dev/null +++ b/template/config_options/warn_remove.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/config_options/webusers.cs b/template/config_options/webusers.cs index bc5ffdf..073cda3 100644 --- a/template/config_options/webusers.cs +++ b/template/config_options/webusers.cs @@ -1,7 +1,10 @@ +

        • + name="webusers" value="var:html_escape(Data.List.WebUsers) ?>" size="40" />
        - diff --git a/template/config_posting.cs b/template/config_posting.cs index b57740b..5f236b4 100644 --- a/template/config_posting.cs +++ b/template/config_posting.cs @@ -9,64 +9,16 @@
        -
        + " enctype="application/x-www-form-urlencoded"> -
          + - -
        • + + - -
        • - - -
        • - - -
        • -
            - -
          • - - -
          • -
        • - - -
        • 0 ?>checked="checked" /> - -
        • -
        • 0 ?>checked="checked" /> - -
        • - - -
        • -
            - -
          • :
            -
          • -
        • - -
        • - - - -
        • -
        + +
        diff --git a/template/config_processing.cs b/template/config_processing.cs index a888187..5e4734e 100644 --- a/template/config_processing.cs +++ b/template/config_processing.cs @@ -9,56 +9,17 @@
        -
        + " enctype="application/x-www-form-urlencoded"> -
          + - -
        • -
          • -
        • + + - -
        • - - -
          • -
        • + + - -
        • - - -
        • -
            - -
          • :
            -
          • -
        • - - -
        • :
          -
        • - - -
        • :
          -
        • - -
        • - - - -
        • - -
        diff --git a/template/config_subscription.cs b/template/config_subscription.cs index 68e0355..01bdeef 100644 --- a/template/config_subscription.cs +++ b/template/config_subscription.cs @@ -9,33 +9,16 @@
        -
        + " enctype="application/x-www-form-urlencoded"> -
          + - -
        • + + - -
        • - - -
        • - - -
        • -
            - -
          • ()
          • -
        • - -
        • - - - -
        • -
        + +
        diff --git a/template/footer.cs b/template/footer.cs index 9f1b83f..89f8cb7 100644 --- a/template/footer.cs +++ b/template/footer.cs @@ -1,6 +1,6 @@ diff --git a/template/list_create.cs b/template/list_create.cs index 77fadbd..3a0f405 100644 --- a/template/list_create.cs +++ b/template/list_create.cs @@ -5,40 +5,9 @@
        -
        -
          -
        • -
        • - -
        • - @
        • - - 0 ?> -
        • -
        • - - - -
        • - - - -
        • -
        • - - -
        + " enctype="application/x-www-form-urlencoded"> + + diff --git a/template/list_delete.cs b/template/list_delete.cs index a8b0773..6c8a9dc 100644 --- a/template/list_delete.cs +++ b/template/list_delete.cs @@ -10,7 +10,7 @@

        - + " enctype="application/x-www-form-urlencoded"> diff --git a/template/list_select.cs b/template/list_select.cs index e765f83..194485f 100644 --- a/template/list_select.cs +++ b/template/list_select.cs @@ -24,7 +24,9 @@ + if:listname ?>" title=""> diff --git a/template/macros.cs b/template/macros.cs index 96db0a3..c4eb6ca 100644 --- a/template/macros.cs +++ b/template/macros.cs @@ -1,57 +1,97 @@ checked="checked" /> -