tagged ezmlm-web release v3.3.1
This commit is contained in:
parent
e8f0fc7832
commit
b78397f773
147 changed files with 32182 additions and 0 deletions
185
ezmlm-web-3.3.1/INSTALL
Normal file
185
ezmlm-web-3.3.1/INSTALL
Normal file
|
@ -0,0 +1,185 @@
|
|||
The following notes will guide you through the installation of ezmlm-web:
|
||||
|
||||
$Id$
|
||||
|
||||
OVERVIEW:
|
||||
0 - important notes
|
||||
1 - get it
|
||||
2 - install executable and shared files
|
||||
3 - configuration file
|
||||
4 - create a suid cgi wrapper
|
||||
5 - [optional] configure access control (http authentication)
|
||||
6 - [optional] configure multi domain support
|
||||
7 - css stylesheet file
|
||||
8 - final test
|
||||
9 - troubleshooting
|
||||
10 - report problems
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
0. IMPORTANT: you need the perl module Mail::Ezmlm and others to use
|
||||
ezmlm-web! The file README contains the complete list of necessary
|
||||
modules.
|
||||
|
||||
|
||||
1. Choose a distribution form
|
||||
|
||||
1a) source installation
|
||||
Get ezmlm-web and extract the archive:
|
||||
tar xzf ezmlm-web-3.x.tar.gz
|
||||
(for source installation continue with step 2)
|
||||
|
||||
1b) debian package
|
||||
This is the (by far) most convenient way to install ezmlm-web.
|
||||
Add the following line to your /etc/apt/sources.list file:
|
||||
deb http://systemausfall.org/toolforge/debian/ testing main contrib
|
||||
Now you can install it:
|
||||
aptitude update
|
||||
aptitude install ezmlm-web
|
||||
|
||||
(debian users may stop reading here)
|
||||
|
||||
|
||||
2. Execute the following lines to install the cgi script and the shared data
|
||||
files to the appropriate locations.
|
||||
perl Makefile.PL
|
||||
make
|
||||
make install
|
||||
|
||||
|
||||
3. Edit the examples/ezmlmwebrc.dist file and alter the variables to suit
|
||||
your particular system.
|
||||
|
||||
Be careful about the $LIST_DIR variable. This script assumes that
|
||||
all users store their mailing lists in the same sub directory of the
|
||||
home directory (eg ~/lists). You can override this for an individual
|
||||
user by recompiling the C wrapper to call ezmlm-web.cgi with a -d
|
||||
option.
|
||||
|
||||
Other configurable options are documented in the ezmlmwebrc file
|
||||
itself. I have tried to keep the amount of information that you need to
|
||||
supply to a minimum and also make reasonable guesses about default
|
||||
values.
|
||||
|
||||
Finally, copy the ezmlmwebrc file to one of
|
||||
the following places:
|
||||
1) the home directory of the user that runs ezmlm-web.cgi (~/.ezmlmwebrc)
|
||||
2) /etc/ezmlm-web/ezmlmwebrc
|
||||
3) /etc/ezmlm/ezmlmwebrc [deprecated]
|
||||
(ezmlm-web will look for it in these places in the given order)
|
||||
|
||||
See the manpage of ezmlmwebrc (5) for a complete description of all
|
||||
configuration settings.
|
||||
|
||||
|
||||
4. For every user/virtual host that needs to manage mailing lists, you
|
||||
need to create a suid wrapper owned by the user whom the mailing lists
|
||||
belong to. This wrapper needs to reside somewhere accessible by
|
||||
the web server. I suggest that you put it in a sub directory
|
||||
of each user/virtual host's home directory (eg.
|
||||
/home/luser/public_html/ezmlm for Apache).
|
||||
|
||||
Create a suid wrapper by issuing the following command:
|
||||
ezmlm-web-make-suid
|
||||
|
||||
The copies don't actually have to be called index.cgi, but it is nice
|
||||
for web servers that can resolve a cgi script as an index page. It is
|
||||
important to make sure that whichever directory you choose to put them can
|
||||
i: Execute CGI Scripts and
|
||||
ii: Be access controlled (here I mean both web and user access) by
|
||||
some method (eg .htaccess for Apache).
|
||||
|
||||
Alternatively you can also manage multiple domains/users/virtual hosts
|
||||
with a single suid-wrapper. Take a look at examples/multidomain.conf for
|
||||
details.
|
||||
|
||||
|
||||
5. Install some method of securing access to the page. The following
|
||||
information is applicable to Apache web servers ... Detailed
|
||||
information on user authentication can be obtained from the Apache
|
||||
documentation (http://www.apache.org) and ApacheWeek
|
||||
(http://www.apacheweek.com/features/userauth).
|
||||
|
||||
5.1 Ensure that your Apache setup will allow .htaccess file to control
|
||||
access in the directory that contains. This is controlled by the
|
||||
AllowOverride tag in access.conf. (Also ensure you have the
|
||||
necessary Apache modules installed)
|
||||
|
||||
5.2 Create a htpasswd file. This is done using the htpasswd command that
|
||||
comes with Apache. Its command line syntax is;
|
||||
htpasswd [-c] passwordfile username
|
||||
|
||||
You need to put the passwordfile somewhere that is not accessible by
|
||||
people through the web, and create an entry for each user you want
|
||||
to have access ... See the ApacheWeek article for more details.
|
||||
|
||||
5.3 Create a .htaccess file in the directory that contains index.cgi.
|
||||
Note that using Apache's built in access control, you can only control
|
||||
access to directories, not individual files, hence the need for a
|
||||
sub-directory in step 5.
|
||||
|
||||
The format of the .htaccess file should be along the lines of this;
|
||||
|
||||
AuthName EZ Mailing List Manager
|
||||
AuthType Basic
|
||||
AuthUserFile /path/to/passwordfile
|
||||
require valid-user # or require user username
|
||||
|
||||
You may use examples/htaccess.dist as a template.
|
||||
|
||||
Again, see the ApacheWeek article for details.
|
||||
|
||||
|
||||
6. You may skip this step if you manage only one directory containing mailing
|
||||
lists. For more than one domain or multiple user directories you should
|
||||
follow the instructions below. BEWARE: this is an advanced setting.
|
||||
|
||||
1) copy examples/multidomain.conf.dist to /etc/ezmlm-web/multidomain.conf
|
||||
2) add your mailing list parent directories to this file
|
||||
3) uncomment the respective line in your ezmlmwebrc file
|
||||
|
||||
The web interface should now show a "Change domain" link in the navigation
|
||||
bar to the left.
|
||||
|
||||
Direct links to a specifc domain use the following format:
|
||||
http://BASE_URL/ezmlm-web?domain=foo
|
||||
|
||||
Note that since version 3.3 webusers file has to explictly let users create
|
||||
and manage lists. If you are relying on the user beeing able to create lists
|
||||
if no webusers file exists, then you will have to explicitly create one with
|
||||
the appropiate permissions.
|
||||
|
||||
7. Copy the stylesheet files (/usr/local/share/ezmlm-web/www-data/*.css)
|
||||
to a location of your choice. It has to be accessible by an URL - maybe
|
||||
a place like "/var/www/ezmlm-web/" could be appropriate.
|
||||
Now you may have to adapt the "HTML_CSS_COMMON" and "HTML_CSS_COLOR"
|
||||
settings in your ezmlmwebrc file.
|
||||
|
||||
Alternatively you can also use the mapping feature of your web server.
|
||||
Take a look at examples/apache.conf.dist for an example.
|
||||
|
||||
|
||||
8. Test the installation with your favourite web browser. You should be
|
||||
asked for a username and password (supplied in 6.2) and then be presented
|
||||
with a screen entitled "ezmlm-web". You can then try to create and edit
|
||||
mailing lists ... Have Fun :)
|
||||
|
||||
If you see a slightly disordered screen, the you probably did not set the
|
||||
HTML_CSS_COMMON option correctly. Check it again.
|
||||
|
||||
If you do not see a colorful screen, then you probably did not set the
|
||||
HTML_CSS_COLOR option correctly. Check it again.
|
||||
|
||||
|
||||
9. If anything failes - take a look at the web server's error log
|
||||
(e.g. /var/log/apache/error.log).
|
||||
|
||||
|
||||
10. If the error log of your web server does not to solve your problem:
|
||||
- take a look at https://systemausfall.org/toolforge/ezmlm-web
|
||||
- subscribe to the mailinglist: ezmlm-web-subscribe@lists.systemausfall.org
|
||||
- send me an email: ezmlm-web@sumpfralle.de
|
||||
- report a bug at https://systemausfall.org/trac/ezmlm-web
|
||||
|
112
ezmlm-web-3.3.1/MANIFEST
Normal file
112
ezmlm-web-3.3.1/MANIFEST
Normal file
|
@ -0,0 +1,112 @@
|
|||
ezmlm-web.cgi
|
||||
changelog
|
||||
copyright
|
||||
UPGRADING
|
||||
template/gnupg_public.cs
|
||||
template/config_all.cs
|
||||
template/gnupg_import.cs
|
||||
template/config_subscription.cs
|
||||
template/language_select.cs
|
||||
template/config_encryption.cs
|
||||
template/config_archive.cs
|
||||
template/gnupg_convert.cs
|
||||
template/main.cs
|
||||
template/config_processing.cs
|
||||
template/gnupg_generate_key.cs
|
||||
template/config_admin.cs
|
||||
template/config_posting.cs
|
||||
template/help_tag_substitution.cs
|
||||
template/config_main.cs
|
||||
template/config_options/block_others_post.cs
|
||||
template/config_options/admin_get_subscribers.cs
|
||||
template/config_options/confirm_sub.cs
|
||||
template/config_options/msgsize_max.cs
|
||||
template/config_options/archive_deny_unknown.cs
|
||||
template/config_options/confirm_post.cs
|
||||
template/config_options/gnupg_keysize.cs
|
||||
template/config_options/gnupg_sign_messages.cs
|
||||
template/config_options/admin_enabled.cs
|
||||
template/config_options/confirm_unsub.cs
|
||||
template/config_options/confirm_selection.cs
|
||||
template/config_options/mainlist.cs
|
||||
template/config_options/create_listname.cs
|
||||
template/config_options/mimereject.cs
|
||||
template/config_options/mod_post_path.cs
|
||||
template/config_options/digest_enabled.cs
|
||||
template/config_options/gnupg_keyexpires.cs
|
||||
template/config_options/trailer.cs
|
||||
template/config_options/prefix.cs
|
||||
template/config_options/mysql.cs
|
||||
template/config_options/msgsize_min.cs
|
||||
template/config_options/mimefilter.cs
|
||||
template/config_options/mod_sub.cs
|
||||
template/config_options/admin_path.cs
|
||||
template/config_options/webusers.cs
|
||||
template/config_options/lang_select.cs
|
||||
template/config_options/digest_settings.cs
|
||||
template/config_options/subscribe_selection.cs
|
||||
template/config_options/mod_sub_path.cs
|
||||
template/config_options/gnupg_keyname.cs
|
||||
template/config_options/reply_to_self.cs
|
||||
template/config_options/mailman_requests.cs
|
||||
template/config_options/public.cs
|
||||
template/config_options/block_deny.cs
|
||||
template/config_options/admin_edit_text.cs
|
||||
template/config_options/mod_post.cs
|
||||
template/config_options/copylines.cs
|
||||
template/config_options/headeradd.cs
|
||||
template/config_options/from_address.cs
|
||||
template/config_options/create_listaddress.cs
|
||||
template/config_options/posting_selection.cs
|
||||
template/config_options/warn_remove.cs
|
||||
template/config_options/headerfilter.cs
|
||||
template/config_options/gnupg_keycomment.cs
|
||||
template/config_options/archive_enabled.cs
|
||||
template/config_options/gnupg_plain_without_key.cs
|
||||
template/config_options/block_nonmod_post.cs
|
||||
template/config_options/block_others_archive.cs
|
||||
template/config_options/archive_remove_private_header.cs
|
||||
template/config_options/owner_address.cs
|
||||
template/config_options/archive_mod_only.cs
|
||||
template/config_options/charset_select.cs
|
||||
template/config_options/archive_access.cs
|
||||
template/textfile_edit.cs
|
||||
template/modpath_info.cs
|
||||
template/ui/easy.hdf
|
||||
template/ui/expert.hdf
|
||||
template/ui/normal.hdf
|
||||
template/domain_select.cs
|
||||
template/mime_type_examples.txt
|
||||
template/list_delete.cs
|
||||
template/header.cs
|
||||
template/list_create.cs
|
||||
template/interface_select.cs
|
||||
template/footer.cs
|
||||
template/textfiles.cs
|
||||
template/show_subscription_log.cs
|
||||
template/list_select.cs
|
||||
template/subscribers.cs
|
||||
template/macros.cs
|
||||
template/gnupg_secret.cs
|
||||
template/nav.cs
|
||||
www-data/horiz_grad_blue.png
|
||||
www-data/color-red-blue.css
|
||||
www-data/vert_grad_red.png
|
||||
www-data/horiz_grad_blue_long.png
|
||||
www-data/color-blue-gray.css
|
||||
www-data/graphics-template.svg
|
||||
www-data/default.css
|
||||
man/ezmlm-web-make-suid.1
|
||||
man/ezmlm-web.wrapper.1
|
||||
man/webusers.5
|
||||
man/ezmlmwebrc.5
|
||||
examples/ezmlmwebrc.minimal-dist
|
||||
examples/apache.conf.dist
|
||||
examples/htaccess.dist
|
||||
examples/multidomain.conf.dist
|
||||
examples/webusers.dist
|
||||
examples/ezmlmwebrc.dist
|
||||
suid-wrapper/index.h
|
||||
suid-wrapper/index.c
|
||||
suid-wrapper/ezmlm-web-make-suid
|
||||
suid-wrapper/Makefile
|
110
ezmlm-web-3.3.1/Makefile.PL
Normal file
110
ezmlm-web-3.3.1/Makefile.PL
Normal file
|
@ -0,0 +1,110 @@
|
|||
# $Id$
|
||||
|
||||
use strict;
|
||||
use ExtUtils::MakeMaker;
|
||||
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
|
||||
# the contents of the Makefile that is written.
|
||||
WriteMakefile(
|
||||
'NAME' => 'ezmlm-web',
|
||||
'AUTHOR' => 'Lars Kruse <devel@sumpfralle.de>',
|
||||
'VERSION_FROM' => 'ezmlm-web.cgi', # finds $VERSION
|
||||
'DISTNAME' => 'ezmlm-web',
|
||||
'PREREQ_PM' => {
|
||||
'Mail::Ezmlm' => 0.07,
|
||||
'Mail::Address' => 1.15,
|
||||
'CGI' => 2.6,
|
||||
'CGI::Carp' => 1.06,
|
||||
'DB_File' => 1.65,
|
||||
'Getopt::Std' => 1.0,
|
||||
'File::Find' => 0.0,
|
||||
'File::Copy' => 2.02,
|
||||
'File::Path' => 1.07,
|
||||
'Text::ParseWords' => 3.0 },
|
||||
'MAN1PODS' => { 'ezmlm-web.cgi' => 'blib/man1/ezmlm-web.cgi.1p' },
|
||||
'dist' => { COMPRESS => 'gzip', SUFFIX => 'gz' }
|
||||
);
|
||||
|
||||
sub MY::postamble {
|
||||
my ($self, $datadir) = @_;
|
||||
my $SHAREDIR = "\$(DESTINSTALLSHARE)/$self->{NAME}";
|
||||
return <<ENDOFTEXT
|
||||
# REALINSTALLBIN is introduced later depending on "site" or "vendor" installation
|
||||
export REALINSTALLBIN
|
||||
export NOECHO
|
||||
export CC
|
||||
|
||||
real_install_bin_: REALINSTALLBIN := \$(INSTALLSITEBIN)
|
||||
real_install_bin_: install_suid_wrapper install_cgi
|
||||
|
||||
real_install_bin_site: REALINSTALLBIN := \$(INSTALLSITEBIN)
|
||||
real_install_bin_site: install_suid_wrapper install_cgi
|
||||
|
||||
real_install_bin_vendor: REALINSTALLBIN := \$(INSTALLVENDORBIN)
|
||||
real_install_bin_vendor: install_suid_wrapper install_cgi
|
||||
|
||||
real_install_bin_perl: REALINSTALLBIN := \$(INSTALLBIN)
|
||||
real_install_bin_perl: install_suid_wrapper install_cgi
|
||||
|
||||
real_build_bin_: REALINSTALLBIN := \$(INSTALLSITEBIN)
|
||||
real_build_bin_: build_suid_wrapper
|
||||
|
||||
real_build_bin_site: REALINSTALLBIN := \$(INSTALLSITEBIN)
|
||||
real_build_bin_site: build_suid_wrapper
|
||||
|
||||
real_build_bin_vendor: REALINSTALLBIN := \$(INSTALLVENDORBIN)
|
||||
real_build_bin_vendor: build_suid_wrapper
|
||||
|
||||
real_build_bin_perl: REALINSTALLBIN := \$(INSTALLBIN)
|
||||
real_build_bin_perl: build_suid_wrapper
|
||||
|
||||
|
||||
subdirs:: real_build_bin_\$(INSTALLDIRS)
|
||||
|
||||
clean_subdirs: clean_suid_wrapper
|
||||
|
||||
build_suid_wrapper:
|
||||
\$(MAKE) -C suid-wrapper build
|
||||
|
||||
clean_suid_wrapper:
|
||||
\$(MAKE) -C suid-wrapper clean
|
||||
|
||||
make_real_bin: real_install_bin_\$(INSTALLDIRS)
|
||||
\$(MKPATH) \$(DESTDIR)\$(REALINSTALLBIN)
|
||||
|
||||
install_cgi: make_real_bin
|
||||
install -c -m 755 ezmlm-web.cgi \$(DESTDIR)\$(REALINSTALLBIN)/ezmlm-web.cgi
|
||||
|
||||
install_suid_wrapper: build_suid_wrapper make_real_bin
|
||||
\$(NOECHO) echo "WARNING: \$(REALINSTALLBIN)"
|
||||
install -c -m 0755 suid-wrapper/index.cgi \$(DESTDIR)\$(REALINSTALLBIN)/ezmlm-web.wrapper
|
||||
install -c -m 0755 suid-wrapper/ezmlm-web-make-suid.configured \$(DESTDIR)\$(REALINSTALLBIN)/ezmlm-web-make-suid
|
||||
|
||||
install:: real_install_bin_\$(INSTALLDIRS) install_share_\$(INSTALLDIRS)
|
||||
install_share_site:: DESTINSTALLSHARE := \$(DESTDIR)\$(PREFIX)/local/share
|
||||
install_share_site:: install_share
|
||||
install_share_vendor:: DESTINSTALLSHARE := \$(DESTDIR)\$(PREFIX)/share
|
||||
install_share_vendor:: install_share
|
||||
install_share:
|
||||
install -d -m 0755 $SHAREDIR
|
||||
install -d -m 0755 $SHAREDIR/lang
|
||||
for file in lang/*.hdf ; \\
|
||||
do install -c -m 0644 \$\$file $SHAREDIR/lang/ ; \\
|
||||
done
|
||||
install -d -m 0755 $SHAREDIR/www-data
|
||||
for file in www-data/*.css www-data/*.png ; \\
|
||||
do install -c -m 0644 \$\$file $SHAREDIR/www-data/ ; \\
|
||||
done
|
||||
install -d -m 0755 $SHAREDIR/template
|
||||
install -d -m 0755 $SHAREDIR/template/config_options
|
||||
install -d -m 0755 $SHAREDIR/template/ui
|
||||
for file in template/*.cs template/*.txt ; \\
|
||||
do install -c -m 0644 \$\$file $SHAREDIR/template/ ; \\
|
||||
done
|
||||
for file in template/config_options/*.cs ; \\
|
||||
do install -c -m 0644 \$\$file $SHAREDIR/template/config_options/ ; \\
|
||||
done
|
||||
for file in template/ui/*.hdf ; \\
|
||||
do install -c -m 0644 \$\$file $SHAREDIR/template/ui/ ; \\
|
||||
done
|
||||
ENDOFTEXT
|
||||
}
|
230
ezmlm-web-3.3.1/README
Normal file
230
ezmlm-web-3.3.1/README
Normal file
|
@ -0,0 +1,230 @@
|
|||
===================
|
||||
| ezmlm-web-3.3.1 |
|
||||
===================
|
||||
|
||||
$Id$
|
||||
|
||||
If you only want to know how to install ezmlm-web, then you should
|
||||
read INSTALL.
|
||||
|
||||
Contents
|
||||
========
|
||||
I. Copyright Stuff
|
||||
II. Requirements
|
||||
III. Multi-level list access
|
||||
IV. Multilingual interface
|
||||
V. Encryption support
|
||||
VI. Bugs && Bug Reports
|
||||
VII. Acknowledgements
|
||||
VIII. Availability
|
||||
|
||||
|
||||
I. Copyright Stuff - essentially the FreeBSD licence ...
|
||||
==================
|
||||
ezmlm-web - version 3.3.1 - 14/10/02008
|
||||
|
||||
Copyright (C) 1998, Guy Antony Halse, All Rights Reserved.
|
||||
Copyright (C) 02005-02008, Lars Kruse, All Rights Reserved.
|
||||
|
||||
Please send bug reports and comments to ezmlm-web@sumpfralle.de
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
Neither name Guy Antony Halse nor the names of any contributors may be used
|
||||
to endorse or promote products derived from this software without specific
|
||||
prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
|
||||
IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
II. Requirements
|
||||
================
|
||||
This version of ezmlm-web requires the following;
|
||||
|
||||
* qmail v1.03
|
||||
* ezmlm-idx v0.40 or higher
|
||||
* clearsilver v0.10.3 (only perl support is necessary)
|
||||
* Perl v5.004 and the following modules;
|
||||
+ Mail::Ezmlm v0.07
|
||||
+ Mail::Address v1.15 OR Email::Address
|
||||
+ CGI v2.6
|
||||
+ CGI::Carp v1.06
|
||||
+ DB_File v1.65
|
||||
+ Getopt::Std v4.1
|
||||
+ File::Find v?
|
||||
+ File::Copy v2.02
|
||||
+ File::Path v1.07
|
||||
+ Text::ParseWords v3.24
|
||||
+ MIME::QuotedPrint v?
|
||||
+ Encode (optional)
|
||||
|
||||
The version number indicates the version of the module that ezmlm-web was
|
||||
developed with. Earlier versions may work, but then they haven't been
|
||||
tested. Have a look on http://www.CPAN.org/, http://www.qmail.org/, and
|
||||
http://www.ezmlm.org/ for anything you are missing. Of course, newer
|
||||
versions are expected to work as well.
|
||||
|
||||
To install perl modules you may use the cpan command line interface.
|
||||
Just run "cpan" and type something like "install Mail::Ezmlm".
|
||||
|
||||
You can download clearsilver (a templating engine) from http://clearsilver.net.
|
||||
|
||||
|
||||
III. Multi-Level Access
|
||||
=======================
|
||||
Ezmlm-web has a multi-level access system. This depends on a file called
|
||||
webusers being present in $LIST_DIR. If the file is not present, then ANY
|
||||
valid user has access to all lists. If, however, this file exists a number
|
||||
of constraints come into place.
|
||||
|
||||
- The webusers file is scanned for either the list name (case insensitive) or
|
||||
an ALL (case sensitive) entry.
|
||||
- The list entry (or ALL) is scanned for the current user (as set in
|
||||
$REMOTE_USER) or an ALL (user) entry.
|
||||
- If any valid match is made, then the user is allowed to edit the list.
|
||||
Otherwise the user is politely told to go away ;-)
|
||||
|
||||
If list creation is allowed and the webusers file exists, then the person who
|
||||
creates the list is the default owner. There is no way to create users
|
||||
through the web interface, as this depends on your authentication system.
|
||||
|
||||
The format of a webusers file is as follows:
|
||||
|
||||
list1: user1 user2 user3
|
||||
ALL: user1 user2
|
||||
list2: ALL
|
||||
|
||||
Once this file exists, the ezmlm-web script will allow the list users to
|
||||
configure their access lists along with any other options.
|
||||
|
||||
You can permit some users to create lists by adding a line similar to the
|
||||
following to your webusers file:
|
||||
|
||||
ALLOW_CREATE: user2 user3
|
||||
|
||||
If there is no line starting with "ALLOW_CREATE:" in the webusers file, then
|
||||
no one will be allowed to create lists. This behaviour is new for ezmlm-web
|
||||
since version 2.2. To stay compatible to old installations, the commandline
|
||||
option "-c" for ezmlm-web.cgi will still allow everyone to create lists. The
|
||||
use of this option is deprecated, since the line "ALLOW_CREATE: ALL" provides
|
||||
the same effect in a cleaner way.
|
||||
|
||||
You find the details of the format of webusers (5) file in the respective
|
||||
manpage.
|
||||
|
||||
|
||||
IV. Multilingual interface
|
||||
==========================
|
||||
One of the great new features since version 2.0 is that it is essentially
|
||||
language independant. All of the fixed strings, help, etc is defined in the
|
||||
files of the lang directory. Of course you can change them or create a new
|
||||
translation.
|
||||
|
||||
The default fallback language can be selected in ezmlmwebrc with the
|
||||
"HTML_LANGUAGE" option. ezmlm-web tries to determine the language of the
|
||||
current user by evaluating the http header information of the browser.
|
||||
Additionally the user may select a different language via the web interface.
|
||||
|
||||
The currently supported languages are:
|
||||
- English
|
||||
- German
|
||||
- Slovenian
|
||||
- Portuguese (Brazil)
|
||||
|
||||
Please visit the translation center at http://translate.systemausfall.org
|
||||
to contribute some translations for your native language. Thanks!
|
||||
|
||||
|
||||
V. Encryption support
|
||||
=====================
|
||||
|
||||
ezmlm-web supports encrypted mailinglists since v3.3.
|
||||
See README.crypto for details.
|
||||
|
||||
|
||||
VI. Bugs && Bug Reports
|
||||
=======================
|
||||
I don't know of any bugs ...
|
||||
Ezmlm-web has been tested reasonably well, but not exhaustively. I know it
|
||||
works on FreeBSD 4.0-STABLE, FreeBSD 3.4-RELEASE, RedHat 5.1, Redhat 6.0 and
|
||||
Debian all using an Apache web server, but I would be interested to know
|
||||
whether it works on other OSs and with other web servers.
|
||||
|
||||
Please mail bug reports and comments to
|
||||
ezmlm-web@sumpfralle.de
|
||||
Or (even better) submit a bug report at
|
||||
https://systemausfall.org/trac/ezmlm-web
|
||||
Or subscribe to the ezmlm-web mailinglist:
|
||||
ezmlm-web-subscribe@lists.systemausfall.org
|
||||
|
||||
|
||||
VII. Acknowledgements
|
||||
=====================
|
||||
* Guy Antony Halse (guy-ezmlm@rucus.ru.ac.za) - he created ezmlm-web
|
||||
and maintained it till 02005
|
||||
* Keith Burdis (keith@rucus.ru.ac.za) - For constantly bugging me (Guy) and
|
||||
ensuring that I actually got round to writing some code :)
|
||||
* Bryan Kilian (bryan@rucus.ru.ac.za) and the administrators of the
|
||||
Litestep mailing list - For helping beta test and putting up with me (Guy)
|
||||
pestering them.
|
||||
* Several societies at Rhodes. For switching to my web interface and so
|
||||
unknowingly helping to beta test it.
|
||||
* Barry Irwin (bvi@moria.org) - For trusting me (Guy) and moving the Grahamstown
|
||||
Foundation over to qmail and ezmlm - yet another beta tester :-)
|
||||
* David Summers (david@summersoft.fay.ar.us) - For some ideas. And for
|
||||
offering to make up an RPM version. I hope the offer still exists for
|
||||
version 2.0 :-)
|
||||
* Glen Stewart (glen_stewart@associate.com) - For a multitude of ideas.
|
||||
* Fred Lindberg (lindberg@id.wustl.edu) for his useful posts to the
|
||||
mailing list, suggestions, help, etc
|
||||
* Galen Johnson (gjohnson@totalsports.net) - For some ideas on bugfixes.
|
||||
* Reinin Ooyama (lenin@hasiru.net) - a Japanese translation and bugixes for v2.3
|
||||
* Henning Rieger (age@systemausfall.org) - designed most of the new
|
||||
interface for v3.0
|
||||
* Clavdia Horvat - designed the new color scheme of v3.2 and translated to
|
||||
Slovenian
|
||||
* Carlinhos Cecconi - added the translation for Portugues do Brasil
|
||||
* Hans F. Nordhaug - fixed MANIFEST file and reported typos
|
||||
* Jose Luis Martinez - various code improvements; added the Spanish translation
|
||||
* Anton Ponkratov - added the Russian translation
|
||||
* kinneko - added the Japanese translation
|
||||
|
||||
|
||||
VIII. Availability
|
||||
=================
|
||||
More information on ezmlm-web and developments to ezmlm-web can be found at:
|
||||
https://systemausfall.org/toolforge/ezmlm-web/
|
||||
|
||||
The public subversion repository is at:
|
||||
https://svn.systemausfall.org/svn/ezmlm-web/
|
||||
|
||||
The (inofficial) debian repository containing ezmlm-web is at:
|
||||
http://systemausfall.org/toolforge/debian/
|
||||
|
||||
The translation web interface (powered by Pootle) is at:
|
||||
http://translate.systemausfall.org
|
||||
|
||||
The website of Guy Antony Halse (the original author of ezmlm-web) is still at:
|
||||
http://rucus.ru.ac.za/~guy/ezmlm/
|
||||
|
||||
The old ftp-archive of ezmlm-web is still available on:
|
||||
ftp://rucus.ru.ac.za/pub/mail/ezmlm/
|
||||
|
47
ezmlm-web-3.3.1/README.crypto
Normal file
47
ezmlm-web-3.3.1/README.crypto
Normal file
|
@ -0,0 +1,47 @@
|
|||
This file describes how to manage encrypted mailing lists with ezmlm-web.
|
||||
|
||||
$Id$
|
||||
|
||||
Content:
|
||||
1) Requirements
|
||||
2) Installation of gpgpy-ezmlm
|
||||
3) Setup of ezmlm-web
|
||||
4) Notes
|
||||
|
||||
------------------------------
|
||||
|
||||
1) Requirements
|
||||
To use encrypted mailing lists, you need to install gpg-ezmlm (see
|
||||
http://www.synacklabs.net/projects/crypt-ml/).
|
||||
gpg-ezmlm will handle your incoming and outgoing mails. It does not
|
||||
support all the features of ezmlm-idx, but it should suffice for the
|
||||
specialized needs of encrypted communication for small groups.
|
||||
|
||||
Install the perl module Mail::Ezmlm (>=0.08) to access gpg-ezmlm. You can
|
||||
download it from
|
||||
https://systemausfall.org/toolforge/ezmlm-web/downloads/Ezmlm-Gpg.
|
||||
|
||||
Of course, you also need gnupg (it is required by gpg-ezmlm, too).
|
||||
|
||||
|
||||
2) Installation
|
||||
Follow the instructions in the README file of gpg-ezmlm.
|
||||
Usually it should boil down to the following commands:
|
||||
perl Makefile.PL
|
||||
make
|
||||
make test
|
||||
make install
|
||||
|
||||
See INSTALL in the Mail::Ezmlm module
|
||||
(https://systemausfall.org/toolforge/ezmlm-web/download/Ezmlm)
|
||||
for details on how to install it.
|
||||
|
||||
|
||||
3) Setup of ezmlm-web
|
||||
Support for encrypted mailing lists can be enabled by setting the
|
||||
ENCRYPTION_SUPPORT configuration setting in ezmlmwebrc to "1".
|
||||
|
||||
4) Notes
|
||||
As soon as you installed all the necessary programs you will find a new
|
||||
link in the navigation bar of ezmlm-web named "Encryption".
|
||||
|
8
ezmlm-web-3.3.1/TODO
Normal file
8
ezmlm-web-3.3.1/TODO
Normal file
|
@ -0,0 +1,8 @@
|
|||
Infos fuer Massen-Hosting:
|
||||
http://www.fbis.ch/index-de.php?page=14&frameset=4
|
||||
|
||||
main page title should be a link to the domain/list selection
|
||||
-> text configurable?
|
||||
|
||||
listname (incl. domain name) below the main title?
|
||||
|
121
ezmlm-web-3.3.1/UPGRADING
Normal file
121
ezmlm-web-3.3.1/UPGRADING
Normal file
|
@ -0,0 +1,121 @@
|
|||
This file contains some useful hints for upgrading from a previous version.
|
||||
|
||||
##############################################################################
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
UPGRADING ezmlm-web 3.2 to ezmlm-web 3.3
|
||||
|
||||
1) the file webusers is mandatory
|
||||
The admin has to add ALLOW_CREATE or user-specific permissions to the
|
||||
webusers file, to allow changes to mailing lists otherwise no changes are
|
||||
allowed. If you have ezmlm-web running already, a webusers file has already
|
||||
been created for you (this was actually a bug - see issue #51 in the bug
|
||||
database).
|
||||
This change should not have any negative impact on working installations.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
UPGRADING ezmlm-web 3.1 to ezmlm-web 3.2
|
||||
|
||||
1) the following dependency was added:
|
||||
- File::Path
|
||||
|
||||
2) CSS stylesheet file
|
||||
The css stylesheet file changed significantly. Please update your copy.
|
||||
Additionally the stylesheet file was splitted into a common and a color
|
||||
scheme part. Thus you need to specify the location of your color scheme
|
||||
CSS file (a URL) in your ezmlmwebrc as HTML_CSS_COLOR. Otherwise your web
|
||||
interface will be plain black and white. Read 'man ezmlmwebrc' for details.
|
||||
|
||||
Be aware that at least one of the supplied color schemes requires some
|
||||
images to be available in the directory of the stylesheet file.
|
||||
The easiest approach would be to publish the 'www-data' directory via an
|
||||
'Alias' (or something similar) with your favourite web server.
|
||||
Take a look at examples/apache.conf.dist for an example.
|
||||
|
||||
3) possible locations of ezmlmwebrc
|
||||
ezmlm-web does no longer search for a configuration file (ezmlmwebrc) in
|
||||
the current directory, as this can be a security risk.
|
||||
If you relied on this behavior (should be rare), then you have two options:
|
||||
A) move your configuration file to one of the other possible locations
|
||||
B) patch the source of ezmlm-web.cgi to include the deprecated
|
||||
configuration file location. Do this on your own risk!
|
||||
|
||||
4) renamed configuration setting
|
||||
The configuration setting 'HTML_CSS_FILE' is replaced by 'HTML_CSS_COMMON'
|
||||
for clarity. 'HTML_CSS_COMMON' falls back to the value of 'HTML_CSS_FILE'
|
||||
if it is undefined. Thus your setup should work as before. But you are
|
||||
encouraged to replace the setting, as it might break your setup in a
|
||||
future version of ezmlm-web.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
UPGRADING ezmlm-web 3.0 to ezmlm-web 3.1
|
||||
|
||||
1) update the perl module Mail::Ezmlm to v0.07
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
UPGRADING ezmlm-web 2.3 to ezmlm-web 3.0
|
||||
|
||||
1) install clearsilver (see INSTALL for details)
|
||||
|
||||
2) copy the "template" directory somewhere (see INSTALL again)
|
||||
|
||||
3) set "TEMPLATE_DIR" in your ezmlmwebrc file to this directory
|
||||
|
||||
4) copy the languge directory somewhere and adjust the "LANGUAGE_DIR" setting
|
||||
|
||||
4) maybe you want to define "MAIL_DOMAIN" in your ezmlmwebrc
|
||||
|
||||
5) the search order for ezmlmwebrc has changed
|
||||
from HOME -> SYSTEM -> CGI_DIR
|
||||
to HOME -> CGI_DIR -> SYSTEM
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
UPGRADING ezmlm-web 2.2 to ezmlm-web 2.3
|
||||
|
||||
1) set the location (URL) of the css file in ezmlmwebrc
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
UPGRADING ezmlm-web 2.1 to ezmlm-web 2.2
|
||||
|
||||
1) Creating of new lists is now controlled by a line in the webusers file instead
|
||||
of a commandline switch for ezmlm-web.cgi.
|
||||
|
||||
necessary changes:
|
||||
- optional: remove switch "-c" when calling ezmlm-web.cgi (take a look at index.c)
|
||||
- optional: add a line like "ALLOW_CREATE: john, myra" to the webusers file
|
||||
|
||||
2) The location of the webusers file is now defined in ezmlmwebrc. (default: $LIST_DIR/webusers)
|
||||
|
||||
necessary changes:
|
||||
- optional: add a line like "$WEBUSERS_FILE = /home/ml/webusers" to ezmlmwebrc
|
||||
|
||||
3) A german translation is available.
|
||||
|
||||
- optional: include "lang/de.pm" in ezmlmwebrc (there you can also remove the english definitions)
|
||||
or copy the new ezmlmwebrc :)
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
UPGRADING ezmlm-web 2.0 to ezmlm-web 2.1
|
||||
|
||||
There are no major changes that need to be made in order to upgrade. All
|
||||
that is necessary is to add two new lines to your ezmlmwebrc ... In the top
|
||||
section of the file add
|
||||
|
||||
$FILE_UPLOAD = 1;
|
||||
|
||||
and in the %HELPER section, you need to add
|
||||
|
||||
addaddressfile => 'or you may enter the filename of a plain text file containing multiple RFC822 email addresses, one per line',
|
||||
|
||||
(or just copy the new ezmlmwebrc :)
|
||||
|
||||
Have a look for these two lines in the new ezmlmwebrc included in this
|
||||
distribution if you are unsure of how/where to put these.
|
||||
|
178
ezmlm-web-3.3.1/changelog
Normal file
178
ezmlm-web-3.3.1/changelog
Normal file
|
@ -0,0 +1,178 @@
|
|||
Version 3.3.1 - 10/14/02008
|
||||
* generate gnupg keys in the background to avoid timeouts
|
||||
* remove authorization info during list deletion (Closes: #54)
|
||||
|
||||
Version 3.3 - 10/12/02008
|
||||
* add gnupg keyring management
|
||||
* add gpg-ezmlm support - experimental (Closes: #42)
|
||||
* fix bug for installations without 'webusers' file (Closes: #51)
|
||||
* improve parsing of subscription log (Closes: #43)
|
||||
* add posting model for moderated subscriber-only lists (Closes: #49)
|
||||
* fix a bug in the authorization code regarding lower/uppercase (Closes: #53)
|
||||
* add configuration of blacklisted interface options
|
||||
* hide domains without accessible lists for improved privacy (Closes: #46)
|
||||
* fixed ambiguity of MAIL_ADDRESS_PREFIX for virtualdomain (Closes: #45)
|
||||
* relax possible characters in a list path (Closes: #48)
|
||||
* added Spanish translation contributed by CAPSiDE
|
||||
* added Russian translation contributed by Anton Ponkratov
|
||||
* added Japanese translation contributed by kinneko
|
||||
|
||||
Version 3.2 - 08/15/02007
|
||||
* support for multi-domain setups (multiple list directories)
|
||||
* detect preferred interface language
|
||||
* user-specific interface language selection
|
||||
* user-specific interface types (easy/normal/expert)
|
||||
* simplified rules for subscribing, posting and archive access
|
||||
* support for listing of subscription log
|
||||
* support for downloading the subscribers list as a text file
|
||||
* configurable prefix for the local part of mailing list addresses
|
||||
* support for more ezmlm-idx features: 'headerkeep', 'mimekeep' and 'copylines'
|
||||
* "reply-to-self" is easier to use
|
||||
* added configuration setting for site-specific links
|
||||
* script for creating binary suid wrappers added
|
||||
* handling of empty settings for ezmlm-idx 5.0 fixed (closes #21)
|
||||
* bug in MySQL support fixed
|
||||
* handling of the special character "dot" in listname and list address fixed
|
||||
* prevent creation of dotqmail files containing uppercase characters (invalid)
|
||||
* support regional language codes (e.g.: pt_BR)
|
||||
* allow to reset the "owner" attribute
|
||||
* the formerly required module "Encode" is now optional
|
||||
* the perl module Email::Address can be used instead of Mail::Address
|
||||
* most importantly: a new color scheme! (red/blue instead of blue/gray)
|
||||
(the "classic" color scheme is still supported)
|
||||
|
||||
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)
|
||||
* change charset of list (idx >= 5.0)
|
||||
* 'modsub' and 'remote' can be changed independently
|
||||
* improved configuration parsing
|
||||
* requires Mail::Ezmlm v0.07
|
||||
|
||||
Version 3.0.2 - 01/11/02006
|
||||
* fixed two confusing description strings
|
||||
|
||||
Version 3.0.1 - 01/06/02006
|
||||
* allow several special characters in local part of mail address (RFC2822)
|
||||
|
||||
Version 3.0 - 12/25/02005
|
||||
* complete interface rewritten for enhanced usability
|
||||
* support for msgsize, mimereject, trailer
|
||||
* fixed insecure writing of webusers data
|
||||
* define a default MAIL_DOMAIN
|
||||
* changed directory for safely removed mailinglists
|
||||
* requires the clearsilver template engine
|
||||
|
||||
Version 2.3 - 10/06/02005
|
||||
* css styles are used instead of tables
|
||||
* permission check for upload of files fixed
|
||||
* removed some taint errors
|
||||
* file upload typo fixed
|
||||
* update of webusers file fixed
|
||||
* moderator unsubscribe fixed
|
||||
|
||||
Version 2.2 - 26/01/02005 (not officially released)
|
||||
* German translation of the web interface - more translations can be added easily
|
||||
* changed "ALT"-tags to "TITLE" - most browsers will display the tooltip texts now
|
||||
* fixed security problems (permissions were not thoroughly checked)
|
||||
* user-based permission for creating lists (can be set in webusersrc)
|
||||
* the location of the webusers file is now an option in ezmlmwebrc
|
||||
|
||||
Version 2.1 - 25/09/00
|
||||
* Fixed the multiple delete thing - finally!
|
||||
* Fixed the '-' in username problem - The '-' in hostnames problem is fixed
|
||||
in the new version of Mail::Ezmlm
|
||||
* Fixed the '_' in list names problem
|
||||
* Added support for file uploads of email addresses (multiple subscribe)
|
||||
* Made error handling more friendly
|
||||
|
||||
Version 2.0 - 01/01/00
|
||||
* Rewrote most of the code to take advantage of Mail::Ezmlm
|
||||
* Made the webuser file more functional (users can alter it)
|
||||
* Now handles all current, and future command line options
|
||||
* Changed the colours :)
|
||||
* Added support for ezmlm-cgi web archives
|
||||
* Made it -w and use strict clean
|
||||
* Moved all user config to a separate file
|
||||
* Fixed the way we worked out list config - now complete
|
||||
* Allowed a user specific config over-ride ``ezmlmwebrc''
|
||||
* Allowed the printing of `nice' usernames (for Rhodes CS Dept)
|
||||
* Took account of non-standard paths for moderators
|
||||
* Removed all system() and `` calls from ezmlm-web.cgi
|
||||
* Made `look and feel' virtually all user configurable
|
||||
* Added a lot more context sensitive help
|
||||
* Made ezmlm-web 99% language configurable - but no other templates yet :(
|
||||
* Added support for creating databases
|
||||
|
||||
Version 1.0.3 - 03/10/98
|
||||
* Fixed the alias-alias-alias-list bug in inlocal (bryan@rucus)
|
||||
* Added a bit of online help
|
||||
* Fixed the & in list owner (bryan@rucus)
|
||||
* Added multi-level access to lists (based on idea by Glen Stewart)
|
||||
|
||||
Version 1.0.2 - 28/08/98
|
||||
* Fixed the bug introduced in v1.0.1 :( (keith@rucus)
|
||||
* Fixed the way we recreate config files (noticed by Glen Stewart)
|
||||
* Made the script check return values of system calls properly
|
||||
* Fixed some of the taint checking stuff ... reports less in the logs now.
|
||||
|
||||
Version 1.0.1 - 10/08/98
|
||||
* Fixed a bug in the way 1.0 re-configured virtual hosts (bryan@rucus)
|
||||
* Made the script read the /var/qmail/control files instead of explicitly
|
||||
setting variables (for david@summersoft)
|
||||
|
||||
Version 1.0 - 01/08/98
|
||||
* Complete re-write to convert to perl5 and CGI.pm
|
||||
* Removed a lot of dependancy on the OS. Use builtin functions instead :)
|
||||
* Added support for ezmlm-idx
|
||||
* Added a lot more command line option support (-adfgiklmnpqsrstux5)
|
||||
* Added support for digests and digest subscribers
|
||||
* Added support for blacklists
|
||||
* Allowed users to edit the config of existing lists
|
||||
* Allowed the user to edit headeradd and headerremove as well as mimeremove
|
||||
* Allowed user to edit any of the files in DIR/text
|
||||
* Revised interface to make it more user-friendly and ergonomic.
|
||||
* Changed the background colour for Kether (clb@rucus) *gryn*
|
||||
* Removed a big bug in the delete_list function that had gone unnoticed.
|
||||
|
||||
Version 0.5 - 12/05/98 (Not Released)
|
||||
* More bug fixes. Mainly for mathew@graham.
|
||||
|
||||
Version 0.4 - 28/04/98
|
||||
* Fixed up virtual domain (inlocal) stuff as spotted by bryan@rucus
|
||||
* Allowed the list directory to be automatically created if necessary.
|
||||
|
||||
Version 0.3 - 15/04/98
|
||||
* Allow list deletion (for balin@moria.org)
|
||||
* Made changes to allow it to run on RedHat 4.2 as well as FreeBSD 3.0
|
||||
* Fixed some minor bugs (cosmetic irritaions really) that people noticed
|
||||
* Sorted subscribers list into alphabetical order.
|
||||
* Added command line switch to change list directory (for nxsy@moria.org)
|
||||
* Wrote some documentation ...
|
||||
|
||||
Version 0.2 - 13/04/98 (Not Released)
|
||||
* Allow list creation
|
||||
* Allowed users to edit moderators
|
||||
|
||||
Version 0.1 - 10/04/98 (Not Released)
|
||||
* University Vac - I was bored and started to play. The first version just
|
||||
let people play with the subscribers list. No moderators, no nothing.
|
||||
|
33
ezmlm-web-3.3.1/copyright
Normal file
33
ezmlm-web-3.3.1/copyright
Normal file
|
@ -0,0 +1,33 @@
|
|||
ezmlm-web is distributed under the following BSD-style license:
|
||||
|
||||
Copyright (C) 1999/2000, Guy Antony Halse
|
||||
Copyright (C) 2005-2008, Lars Kruse
|
||||
All Rights Reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
Neither name Guy Antony Halse, Lars Kruse nor the names of any contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
|
||||
IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
13
ezmlm-web-3.3.1/examples/apache.conf.dist
Normal file
13
ezmlm-web-3.3.1/examples/apache.conf.dist
Normal file
|
@ -0,0 +1,13 @@
|
|||
# example configuration of ezmlm-web for apache-style web servers
|
||||
# you should copy this file to e.g. /etc/apache2/conf.d
|
||||
# don't forget to restart the web server afterwards
|
||||
|
||||
# map the static content (css files and images) to the base URL /ezmlm-web/
|
||||
Alias /ezmlm-web/ /usr/local/share/ezmlm-web/www-data/
|
||||
|
||||
# usually you will have to create a suid wrapper for ezmlm-web to enable
|
||||
# write access to the mailing list directories
|
||||
# see 'man ezmlm-web-make-suid' for details
|
||||
# e.g.: 'ezmlm-web-make-suid ezmlm /usr/local/bin/ezmlm-web'
|
||||
#ScriptAlias /ezmlm-web /usr/local/bin/ezmlm-web
|
||||
|
134
ezmlm-web-3.3.1/examples/ezmlmwebrc.dist
Normal file
134
ezmlm-web-3.3.1/examples/ezmlmwebrc.dist
Normal file
|
@ -0,0 +1,134 @@
|
|||
# Configuration file for ezmlm-web 3.3
|
||||
# ===========================================================================
|
||||
|
||||
# This file is not just an ordinary configuration file - it contains valid
|
||||
# perl statements that are executed just like any other perl script. When
|
||||
# editing this file, be careful that it is still valid perl when you have
|
||||
# finished (perl -w ezmlmwebrc ;-)
|
||||
#
|
||||
# See the manpage of ezmlmwebrc(5) for a list of all available configuration
|
||||
# settings.
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# Where do we store lists on this server ... Try "$HOME_DIR/lists".
|
||||
# This directory will automatically be created if needed.
|
||||
# BEWARE: the (resulting) path MUST be absolute (starting with a slash)!
|
||||
$LIST_DIR = "$HOME_DIR/lists";
|
||||
|
||||
# Multi-Domain-Support
|
||||
# This is a quite advanced setting for special installations.
|
||||
# Most people should just ignore it.
|
||||
# Anyway - if you want to control more than one directory containing
|
||||
# different lists, then you should:
|
||||
# 1) copy examples/multidomain.conf.dist to /etc/ezmlm-web/multidomain.conf
|
||||
# 2) adjust /etc/ezmlm-web/multidomain.conf to your setup
|
||||
# 3) uncomment the following line
|
||||
# 4) make sure that your multi domain settings are not overriden by settings below
|
||||
#warn "multidomain.conf failed" unless (defined do "/etc/ezmlm-web/multidomain.conf");
|
||||
|
||||
# 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.
|
||||
# BEWARE: the (resulting) path MUST be absolute (starting with a slash)!
|
||||
#$DOTQMAIL_DIR = "/home/vpopmail/domain";
|
||||
|
||||
# Where is the webusers file for access-permissions
|
||||
# defaults to "$LIST_DIR/webusers"
|
||||
#$WEBUSERS_FILE = "$LIST_DIR/webusers";
|
||||
|
||||
# Where are the language files
|
||||
# usually something like /usr/local/share/ezmlm-web/lang
|
||||
$LANGUAGE_DIR = "/usr/local/share/ezmlm-web/lang";
|
||||
|
||||
# Where are the template files
|
||||
# usually something like /usr/local/share/ezmlm-web/template
|
||||
$TEMPLATE_DIR = "/usr/local/share/ezmlm-web/template";
|
||||
|
||||
# Safe list deletion?
|
||||
# 0 = move List to $LIST_DIR/_deleted_lists -> recoverable :)
|
||||
# 1 = allow user to delete list completely. No backup, therefore no recovery.
|
||||
$UNSAFE_RM = 0;
|
||||
|
||||
# Who is the qmail alias user on this system (usually alias ;)
|
||||
$ALIAS_USER = "alias";
|
||||
|
||||
# Where do the qmail control files live on this system ...
|
||||
# defaults to /var/qmail/control
|
||||
$QMAIL_BASE = $Mail::Ezmlm::QMAIL_BASE . '/control';
|
||||
|
||||
# default mailing list domain name (optional)
|
||||
#$MAIL_DOMAIN = "lists.someserver.org";
|
||||
|
||||
# default prefix of the local part of the addresses of mailing lists
|
||||
# useful for some qmail-ldap setups
|
||||
#$MAIL_ADDRESS_PREFIX = "lists-";
|
||||
|
||||
# Do we want to allow ``pretty'' names - ie more human readable ones
|
||||
# This will slow ezmlm-web down a bit for large lists
|
||||
$PRETTY_NAMES = 1;
|
||||
|
||||
# Do we want to allow the users to be allowed to upload a file containing
|
||||
# lists of email addresses to subscribe?
|
||||
$FILE_UPLOAD = 1;
|
||||
|
||||
# What switches to we want ezmlm-web to have on as default. The ezmlm-make
|
||||
# defaults are aBDFGHIJKLMNOpQRSTUWX (small means enabled, CAPITALS mean
|
||||
# disabled). The defaults below should be reasonable - I use them ;)
|
||||
$DEFAULT_OPTIONS = "aBDFGHiJkLMNOpQRSTUWx";
|
||||
|
||||
# Which interface type should be displayed by default?
|
||||
# available values are: easy, normal and expert
|
||||
#$DEFAULT_INTERFACE_TYPE = "normal";
|
||||
|
||||
# exclude some interface options from being displayed
|
||||
# BEWARE: this does not protect the specific option from being changed.
|
||||
# It just hides the visible interface items. Anyone can still craft a manual
|
||||
# http request, that could change the specified options.
|
||||
# See the list of filenames below $TEMPLATE_DIR/config_options/. The
|
||||
# blacklist may contain any of these filenames (without '.cs' extension).
|
||||
#$INTERFACE_OPTIONS_BLACKLIST = ('lang_select', 'mime_reject');
|
||||
|
||||
# What is the title of this document?
|
||||
$HTML_TITLE = "ezmlm-web - a mailinglist administration interface";
|
||||
|
||||
# Optional: some permanent links (visible in the top right corner)
|
||||
#@HTML_LINKS = (
|
||||
# { name => 'ezmlm-web homepage',
|
||||
# url => 'https://systemausfall.org/toolforge/ezmlm-web' },
|
||||
# { name => 'domain\'s root',
|
||||
# url => '/'},
|
||||
# );
|
||||
|
||||
# use a cascading style sheet (css)
|
||||
# the setting is interpreted as a URL
|
||||
# this setting was formerly known as "HTML_CSS_FILE"
|
||||
$HTML_CSS_COMMON = "/ezmlm-web/default.css";
|
||||
|
||||
# choose a coloring scheme - the available files are:
|
||||
# color-blue-gray: default style used before v3.2
|
||||
# color-red-blue: use gradients instead of plain colors (since v3.2)
|
||||
#
|
||||
# be aware, that some stylesheets may require additional graphic
|
||||
# files in the same directory
|
||||
$HTML_CSS_COLOR = "/ezmlm-web/color-red-blue.css";
|
||||
|
||||
# the default interface language
|
||||
# all other available translation are available via the web interface
|
||||
# the configured preferred browser language of a user can override this
|
||||
# setting individually
|
||||
$HTML_LANGUAGE = "en";
|
||||
|
||||
# enabled support for encrypted mailing lists - defaults to 0 (off)
|
||||
# This include keyring management and mailing list handling in general.
|
||||
#$ENCRYPTION_SUPPORT = 0;
|
||||
|
||||
# Define the default location of gnupg keyrings used for mailing list
|
||||
# encryption. If the location starts with a slash ('/'), then it is considered
|
||||
# to be an absolute path. Otherwise it is relative to the current list
|
||||
# directory. For the ezmlm-gpg mailing list encryption system, the default
|
||||
# (".gnupg") is usable.
|
||||
#$GPG_KEYRING_DEFAULT_LOCATION = ".gnupg";
|
||||
|
||||
|
26
ezmlm-web-3.3.1/examples/ezmlmwebrc.minimal-dist
Normal file
26
ezmlm-web-3.3.1/examples/ezmlmwebrc.minimal-dist
Normal file
|
@ -0,0 +1,26 @@
|
|||
# Minimal configuration file for ezmlm-web 3.3
|
||||
# ===========================================================================
|
||||
|
||||
# This file is not just an ordinary configuration file - it contains valid
|
||||
# perl statements that are executed just like any other perl script. When
|
||||
# editing this file, be careful that it is still valid perl when you have
|
||||
# finished (perl -w ezmlmwebrc ;-)
|
||||
#
|
||||
# See the manpage of ezmlmwebrc(5) for a list of all available configuration
|
||||
# settings.
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# Where do we store lists on this server ... Try "$HOME_DIR/lists".
|
||||
# This directory will automatically be created if needed.
|
||||
# BEWARE: the (resulting) path MUST be absolute (starting with a slash)!
|
||||
$LIST_DIR = "$HOME_DIR/lists";
|
||||
|
||||
# Where are the language files
|
||||
# usually something like /usr/local/share/ezmlm-web/lang
|
||||
$LANGUAGE_DIR = "/usr/local/share/ezmlm-web/lang";
|
||||
|
||||
# Where are the template files
|
||||
# usually something like /usr/local/share/ezmlm-web/template
|
||||
$TEMPLATE_DIR = "/usr/local/share/ezmlm-web/template";
|
||||
|
7
ezmlm-web-3.3.1/examples/htaccess.dist
Normal file
7
ezmlm-web-3.3.1/examples/htaccess.dist
Normal file
|
@ -0,0 +1,7 @@
|
|||
#order deny,allow
|
||||
#deny from all
|
||||
#allow from .ru.ac.za
|
||||
AuthName "EZ Mailing List Manager"
|
||||
AuthType Basic
|
||||
AuthUserFile /etc/ezmlm/.htusers
|
||||
require valid-user
|
66
ezmlm-web-3.3.1/examples/multidomain.conf.dist
Normal file
66
ezmlm-web-3.3.1/examples/multidomain.conf.dist
Normal file
|
@ -0,0 +1,66 @@
|
|||
# This is a configuration file for ezmlm-web setups with more than one
|
||||
# mailing list directory.
|
||||
#
|
||||
# If you want to use multi-domain support, then you should somehow know
|
||||
# what you are doing. You have been warned! ;)
|
||||
#
|
||||
# Usually you just need to adjust the $DOMAIN setting below.
|
||||
# Use the existing example as a template.
|
||||
#
|
||||
# If your setup is a little bit more exotic, then you can change the code, too.
|
||||
# In the end, the setting $LIST_DIR should either be an empty string or
|
||||
# the path of a mailing list directory. You may also want to take care for the
|
||||
# $DOTQMAIL_DIR, $MAILDOMAIN and $MAIL_ADDRESS_PREFIX settings.
|
||||
#
|
||||
# BEWARE: you may not define new variables as - otherwise they could collide
|
||||
# with the names of variables of the ezmlm-web program.
|
||||
#
|
||||
# AGAIN: you have to remove any setting defined in this multidomain setup from
|
||||
# the ezmlmwebrc file. Otherwise the settings below get overriden and are ignored.
|
||||
#
|
||||
|
||||
|
||||
{
|
||||
# we do not want to spoil our namespace - but we need CGI input
|
||||
use CGI ();
|
||||
$CURRENT_DOMAIN = new CGI->param('domain');
|
||||
};
|
||||
|
||||
# domain names may not contain any special characters
|
||||
# you must define at least "name" and "list_dir" for each domain
|
||||
%DOMAINS = (
|
||||
foo => {
|
||||
name => "Example Domain Foo",
|
||||
list_dir => "/data/lists/foo",
|
||||
dot_dir => "/var/vpopmail/lists/foo",
|
||||
mail_domain => "lists.foo.org",
|
||||
mail_prefix => "lists-",
|
||||
webusers_file => "/data/lists/foo/webusers",
|
||||
},
|
||||
bar => {
|
||||
name => "Example Domain Bar",
|
||||
list_dir => "/data/lists/bar",
|
||||
dot_dir => "/var/vpopmail/lists/bar",
|
||||
mail_domain => "lists.bar.org",
|
||||
mail_prefix => "lists-",
|
||||
webusers_file => "/data/lists/bar/webusers",
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
# this simple code defines the most common list specific parameters in a sane way
|
||||
if (defined($CURRENT_DOMAIN) && defined($DOMAINS{$CURRENT_DOMAIN})) {
|
||||
$LIST_DIR = $DOMAINS{$CURRENT_DOMAIN}{'list_dir'}
|
||||
if (defined $DOMAINS{$CURRENT_DOMAIN}{'list_dir'});
|
||||
$DOTQMAIL_DIR = $DOMAINS{$CURRENT_DOMAIN}{'dot_dir'}
|
||||
if (defined $DOMAINS{$CURRENT_DOMAIN}{'dot_dir'});
|
||||
$MAIL_DOMAIN = $DOMAINS{$CURRENT_DOMAIN}{'mail_domain'}
|
||||
if (defined $DOMAINS{$CURRENT_DOMAIN}{'mail_domain'});
|
||||
$MAIL_ADDRESS_PREFIX = $DOMAINS{$CURRENT_DOMAIN}{'mail_prefix'}
|
||||
if (defined $DOMAINS{$CURRENT_DOMAIN}{'mail_prefix'});
|
||||
$WEBUSERS_FILE = $DOMAINS{$CURRENT_DOMAIN}{'webusers_file'}
|
||||
if (defined $DOMAINS{$CURRENT_DOMAIN}{'webusers_file'});
|
||||
} else {
|
||||
$LIST_DIR = '';
|
||||
}
|
||||
|
5
ezmlm-web-3.3.1/examples/webusers.dist
Normal file
5
ezmlm-web-3.3.1/examples/webusers.dist
Normal file
|
@ -0,0 +1,5 @@
|
|||
comm: guy arb
|
||||
users: arb
|
||||
members: ALL
|
||||
ALL: root
|
||||
ALLOW_CREATE: root guy
|
3014
ezmlm-web-3.3.1/ezmlm-web.cgi
Executable file
3014
ezmlm-web-3.3.1/ezmlm-web.cgi
Executable file
File diff suppressed because it is too large
Load diff
1265
ezmlm-web-3.3.1/intl/cs/LC_MESSAGES/ezmlm-web.po
Normal file
1265
ezmlm-web-3.3.1/intl/cs/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1265
ezmlm-web-3.3.1/intl/da/LC_MESSAGES/ezmlm-web.po
Normal file
1265
ezmlm-web-3.3.1/intl/da/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1385
ezmlm-web-3.3.1/intl/de/LC_MESSAGES/ezmlm-web.po
Normal file
1385
ezmlm-web-3.3.1/intl/de/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1339
ezmlm-web-3.3.1/intl/en/LC_MESSAGES/ezmlm-web.po
Normal file
1339
ezmlm-web-3.3.1/intl/en/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1376
ezmlm-web-3.3.1/intl/es/LC_MESSAGES/ezmlm-web.po
Normal file
1376
ezmlm-web-3.3.1/intl/es/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1250
ezmlm-web-3.3.1/intl/ezmlm-web.pot
Normal file
1250
ezmlm-web-3.3.1/intl/ezmlm-web.pot
Normal file
File diff suppressed because it is too large
Load diff
1265
ezmlm-web-3.3.1/intl/fi/LC_MESSAGES/ezmlm-web.po
Normal file
1265
ezmlm-web-3.3.1/intl/fi/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1273
ezmlm-web-3.3.1/intl/fr/LC_MESSAGES/ezmlm-web.po
Normal file
1273
ezmlm-web-3.3.1/intl/fr/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1274
ezmlm-web-3.3.1/intl/hu/LC_MESSAGES/ezmlm-web.po
Normal file
1274
ezmlm-web-3.3.1/intl/hu/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1270
ezmlm-web-3.3.1/intl/it/LC_MESSAGES/ezmlm-web.po
Normal file
1270
ezmlm-web-3.3.1/intl/it/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1269
ezmlm-web-3.3.1/intl/ja/LC_MESSAGES/ezmlm-web.po
Normal file
1269
ezmlm-web-3.3.1/intl/ja/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1269
ezmlm-web-3.3.1/intl/nl/LC_MESSAGES/ezmlm-web.po
Normal file
1269
ezmlm-web-3.3.1/intl/nl/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1265
ezmlm-web-3.3.1/intl/pl/LC_MESSAGES/ezmlm-web.po
Normal file
1265
ezmlm-web-3.3.1/intl/pl/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1621
ezmlm-web-3.3.1/intl/pt/LC_MESSAGES/ezmlm-web.po
Normal file
1621
ezmlm-web-3.3.1/intl/pt/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1350
ezmlm-web-3.3.1/intl/pt_BR/LC_MESSAGES/ezmlm-web.po
Normal file
1350
ezmlm-web-3.3.1/intl/pt_BR/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1350
ezmlm-web-3.3.1/intl/ru/LC_MESSAGES/ezmlm-web.po
Normal file
1350
ezmlm-web-3.3.1/intl/ru/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1350
ezmlm-web-3.3.1/intl/sl/LC_MESSAGES/ezmlm-web.po
Normal file
1350
ezmlm-web-3.3.1/intl/sl/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
1265
ezmlm-web-3.3.1/intl/sv/LC_MESSAGES/ezmlm-web.po
Normal file
1265
ezmlm-web-3.3.1/intl/sv/LC_MESSAGES/ezmlm-web.po
Normal file
File diff suppressed because it is too large
Load diff
8
ezmlm-web-3.3.1/lang/README
Normal file
8
ezmlm-web-3.3.1/lang/README
Normal file
|
@ -0,0 +1,8 @@
|
|||
BEWARE: all files in this directory except for "en.hdf" are auto-generated by
|
||||
scripts/update_language_files.sh.
|
||||
Do not change these files! All changes will get lost!
|
||||
Use the po files in the directory "intl" instead, if you want to update a
|
||||
translation.
|
||||
|
||||
Use the UTF-8 character set for the language files.
|
||||
|
361
ezmlm-web-3.3.1/lang/en.hdf
Normal file
361
ezmlm-web-3.3.1/lang/en.hdf
Normal file
|
@ -0,0 +1,361 @@
|
|||
Lang {
|
||||
|
||||
Name = English
|
||||
|
||||
Menue {
|
||||
ListCreate = Create new list
|
||||
ListDelete = Delete list
|
||||
Subscribers = Subscribers
|
||||
AllowList = allow list
|
||||
DenyList = deny list
|
||||
DigestList = digest list
|
||||
ModList = moderators
|
||||
ConfigMain = Options
|
||||
ConfigSub = subscription
|
||||
ConfigPost = posting
|
||||
ConfigAdmin = administration
|
||||
ConfigArchive = archive
|
||||
ConfigProcess = processing
|
||||
ConfigAll = overview
|
||||
Gnupg = Key management
|
||||
GnupgPublicKeys = public keys
|
||||
GnupgSecretKeys = secret keys
|
||||
GnupgGenerateKey = generate key
|
||||
GpgEzmlmConvert = Encryption
|
||||
GpgEzmlmOptions = encryption
|
||||
TextFiles = Text files
|
||||
ListSelect = Choose a list
|
||||
Properties = Properties of
|
||||
Language = Language
|
||||
Interface = Interface
|
||||
Help = Help (external)
|
||||
SubscribeLog = Subscriber's log
|
||||
DomainSelect = Choose a domain
|
||||
}
|
||||
|
||||
|
||||
Title {
|
||||
ConfigMain = List configuration
|
||||
ConfigSub = Subscription options
|
||||
ConfigPosting = Posting options
|
||||
ConfigAdmin = Remote administration
|
||||
ConfigArchive = Archive options
|
||||
ConfigProcess = Message processing
|
||||
ConfigAll = Complete configuration
|
||||
SubscriberList = Subscribers of the list
|
||||
AllowList = Allowed users
|
||||
DenyList = Blocked users
|
||||
DigestList = Digest subscribers
|
||||
ModList = Moderators of the mailinglist
|
||||
ListCreate = Create a new list
|
||||
ListSelect = Choose a list
|
||||
ListDelete = Delete list
|
||||
FileSelect = Choose a file for editing
|
||||
FileEdit = Editing file
|
||||
SubscribeLog = Subscription events
|
||||
GpgEzmlmConvert = Encryption
|
||||
GnupgPublic = Public keys
|
||||
GnupgSecret = Secret keys
|
||||
GnupgGenerateKey = Generate a new keypair
|
||||
GpgEzmlmOptions = Encryption settings
|
||||
DomainSelect = Choose a domain
|
||||
}
|
||||
|
||||
|
||||
Buttons {
|
||||
Create = Create list
|
||||
ConfirmDeletion = Delete the list
|
||||
DeleteAddress = Delete address(es)
|
||||
DownloadSubscribersList = Download subscribers
|
||||
AddAddress = Add address(es)
|
||||
UpdateConfiguration = Update configuration
|
||||
UpdateGnupg = Update keyring
|
||||
EditFile = Edit file
|
||||
SaveFile = Save file
|
||||
ResetFile = Remove customized file
|
||||
InterfaceSet = Apply
|
||||
GpgEzmlmConvertToEncrypted = Convert to an encrypted mailinglist
|
||||
GpgEzmlmConvertToPlain = Convert to a plaintext mainlinglist
|
||||
DeletePublicKey = Delete public key(s)
|
||||
DeleteSecretKey = Delete secret key(s)
|
||||
GnupgImportKey = Import key
|
||||
GnupgGenerateKey = Generate key pair
|
||||
GnupgExportKey = download
|
||||
}
|
||||
|
||||
|
||||
ErrorMessage {
|
||||
UnknownAction = this action is undefined
|
||||
ParameterMissing = this action needs one or more parameters
|
||||
Forbidden = Error: you are not allowed to do this!
|
||||
InvalidFileName = The name of the file is invalid!
|
||||
UnknownConfigPage = The chosen config page is invalid!
|
||||
UnknownGnupgPage = The chosen gnupg page is invalid!
|
||||
GnupgKeyImport = Failed to import the uploaded key!
|
||||
GnupgDelKey = Failed to remove the key(s)!
|
||||
GnupgGenerateKey = Failed generate a new key!
|
||||
}
|
||||
|
||||
|
||||
WarningMessage {
|
||||
AddAddress = Adding of at least one mail address failed!
|
||||
DeleteAddress = Removal of at least one mail address failed!
|
||||
CreateList = Creation of new mailing list failed!
|
||||
DeleteList = Removal of mailing list failed!
|
||||
UpdateConfig = Update of configuration failed!
|
||||
SaveFile = The file could not be saved!
|
||||
ListNameAlreadyExists = There is already a list with this name!
|
||||
ListAddressAlreadyExists = There is already a list with this address!
|
||||
ListDoesNotExist = A list with this name does not exist!
|
||||
ListDirAccessDenied = Unable to access the list's directory
|
||||
TextDirAccessDenied = Unable to access the list's directory of text files
|
||||
SafeRemoveRenameDirFailed = Unable to rename list for safe removal
|
||||
DotQmailDirAccessDenied = Unable to read the mail user's home directory for .qmail files
|
||||
SafeRemoveMoveDotQmailFailed = Unable to move .qmail files
|
||||
UnsafeRemoveListDirFailed = Unable to delete list
|
||||
UnsafeRemoveDotQmailFailed = Unable to delete .qmail files
|
||||
InvalidFileFormat = The uploaded file must be a text file
|
||||
WebUsersUpdate = Could not update the webusers file
|
||||
WebUsersRead = Could not read the webusers file
|
||||
InvalidListName = The name of the list contains invalid characters
|
||||
ReservedListName = This listname may not be used as it is reserved for internal purposes
|
||||
EmptyListName = The name of the list may not be empty
|
||||
EmptyList = This list has no subscribers.
|
||||
InvalidLocalPart = The local part of the list address is not valid
|
||||
RequiresIDX5 = This action requires ezmlm-idx v5.0 or higher.
|
||||
ResetFileIsDefault = There is no customized text file, that can be removed.
|
||||
ResetFile = Removal of custimized text file failed.
|
||||
LogFile = Reading of log file failed.
|
||||
GnupgNoKeyFile = There was no key file selected for upload!
|
||||
GnupgDelKey = Removal of (at least) one key failed!
|
||||
GnupgNoKeySelected = There was no key selected to be removed!
|
||||
GnupgNoName = The name of the key may not be empty!
|
||||
GnupgInvalidExpiration = The expiration time is invalid!
|
||||
GnupgInvalidKeySize = The length of the key is invalid!
|
||||
GnupgExportKey = Export of key failed!
|
||||
GpgEzmlmConvertEnable = Conversion to encrypted mailing list failed!
|
||||
GpgEzmlmConvertDisable = Conversion to plaintext mailing list failed!
|
||||
GpgEzmlmConvertAlreadyEnabled = Encryption was already enabled for this mailing list.
|
||||
GpgEzmlmConvertAlreadyDisabled = Encryption was already disabled for this mailing list.
|
||||
}
|
||||
|
||||
|
||||
SuccessMessage {
|
||||
AddAddress = The address was added to the list.
|
||||
DeleteAddress = The address was removed from the list.
|
||||
CreateList = The new mailing list was successfully created.
|
||||
DeleteList = The mailing list was successfully removed.
|
||||
UpdateConfig = The mailing list's configuration was successfully changed.
|
||||
UpdateGnupg = The keyring has been changed successfully.
|
||||
SaveFile = The file was saved.
|
||||
ResetFile = The customized text file was successfully removed. From now on, the system-wide default text file will be used instead of it.
|
||||
GnupgKeyImport = The key was successfully imported.
|
||||
GnupgGenerateKey = The key was created successfully.
|
||||
GnupgGenerateKeyInBackground = The key is created in the background. It will be visible in a few minutes.
|
||||
GpgEzmlmConvertEnable = Encryption is now enabled for this list.
|
||||
GpgEzmlmConvertDisable = Encryption is now disabled for this list.
|
||||
}
|
||||
|
||||
|
||||
Options {
|
||||
a = Archive mailing list messages
|
||||
b = Only moderators are allowed to access the archive
|
||||
d = Activate the digest list
|
||||
f = Add a prefix to the subject line of outgoing messages
|
||||
g = Archive requests from unrecognised senders are denied
|
||||
h = Subscriptions do not require confirmation by the user
|
||||
i = Index mailing list messages for WWW archive access
|
||||
j = Unsubscribe does not require confirmation
|
||||
k = Use deny list to prevent some users from posting
|
||||
l = Remote administrators (moderators) may request a subscriber list
|
||||
m = All incoming messages are moderated
|
||||
n = Remote administrators (moderators) may edit text files in DIR/text
|
||||
o = Only moderators may post
|
||||
p = Allow subscription and archive retrieval for everyone
|
||||
q = Process mailman-style requests (to local-request@domain)
|
||||
r = Enable remote administration of the list (for moderators)
|
||||
s = Subscriptions to the main list and the digest list will be moderated
|
||||
t = Add a trailing text to every (plaintext) message
|
||||
u = Only subscribed users may post messages (for moderated lists: always accept subscribers' postings)
|
||||
w = Remove the ezmlm-warn invocations from the list setup (rarely useful)
|
||||
x = Reset the list of to be stripped mime types to its default value
|
||||
y = Request a confirmation mail for every posted message
|
||||
special_replytoself = Redirect replies to the list
|
||||
gpgezmlm_nokeynocrypt = Send a warning instead of the original content to subscribers without a key
|
||||
gpgezmlm_signmessages = Sign outgoing messages with the list's key
|
||||
gpgezmlm_requiresigs = Accept only incoming messages with signatures
|
||||
gpgezmlm_allowkeysubmission = Allow submitting a key in the subscription confirmation mail
|
||||
gpgezmlm_encrypttoall = Encrypt the message to all subscribers within one mail instead of sending a single mail for each subscriber
|
||||
gpgezmlm_verifiedkeyreq = Use only trusted keys
|
||||
}
|
||||
|
||||
|
||||
Selections {
|
||||
archive = Access to the archive is granted for
|
||||
archive.bg = administrators
|
||||
archive.Bg = subscribers and administrators
|
||||
archive.BG = everyone
|
||||
subscribe = Public subscription is
|
||||
subscribe.pS = open
|
||||
subscribe.ps = moderated
|
||||
subscribe.P = not allowed
|
||||
posting = Posting is
|
||||
posting.MOU = allowed for everyone
|
||||
posting.mOU = moderated for everyone
|
||||
posting.mou = moderated for subscribers; others are rejected
|
||||
posting.mOu = allowed for subscribers and moderated for others
|
||||
posting.MOu = allowed for subscribers
|
||||
posting.moU = allowed only for moderators
|
||||
confirmation = Confirmation mails are required for
|
||||
confirmation.H = subscription
|
||||
confirmation.J = unsubscription
|
||||
confirmation.y = posting
|
||||
}
|
||||
|
||||
|
||||
Settings {
|
||||
0 = Make the list a sublist of another list
|
||||
3 = Set a custom "From:" header for outgoing messsages
|
||||
4 = Define customized setting for digest creation (ezmlm-tstdig)
|
||||
5 = Define the email address of the list owner
|
||||
6 = Use a SQL database
|
||||
7 = Define a custom path to the database for posting moderators
|
||||
8 = Define a custom path to the database for subscription moderators
|
||||
9 = Define a custom path to the database for remote administators
|
||||
}
|
||||
|
||||
|
||||
Misc {
|
||||
HelpLink = The manual page of ezmlm-idx
|
||||
Subscription = Subscription
|
||||
Subscribers = subscribers
|
||||
RemoteAdmin = Remote Admin
|
||||
ListName = List Name
|
||||
ListAddress = List Address
|
||||
ListOptions = Basic List Options
|
||||
AllowedToEdit = Users allowed to edit this list via web interface
|
||||
HeaderFiltering = Header filtering
|
||||
HeaderRemove = strip these header lines
|
||||
HeaderKeep = keep only these header lines
|
||||
HeaderAdd = Headers to add to all outgoing mail
|
||||
MimeTypeExamples = Show some example mime types
|
||||
MimeFiltering = Mime type filtering (for multipart mails)
|
||||
MimeRemove = strip these from all messages
|
||||
MimeKeep = keep only these in messages
|
||||
MimeReject = Messages containing any of these mime type will be rejected
|
||||
EditFileInfo {
|
||||
CommonTags = common tags
|
||||
ListNameLocal = The local part of the list name
|
||||
ListNameHost = The host name of the list name
|
||||
MessageNumber = Number of the respective message
|
||||
SubAddress = The subscription address
|
||||
SubReplyAddress = The address a subscriber must reply to
|
||||
AcceptanceAddress = The acceptance address
|
||||
RejectionAddress = The rejection address
|
||||
}
|
||||
SuggestDefaultPath = You will have to manage them manually.
|
||||
PostModPathWarn = Posting moderators are stored in a non-standard location
|
||||
SubModPathWarn = Subscription moderators are stored in a non-standard location
|
||||
RemoteAdminPathWarn = Remote administrators are stored in a non-standard location
|
||||
MessageSize.Max = Reject messages exceeding a specified value
|
||||
MessageSize.Min = Reject messages smaller than a specified value
|
||||
MessageSize.Unit = bytes
|
||||
NoFiles = There are no files in the text directory of the mailinglist.
|
||||
AddSubscriberAddress = Add a new mail address:
|
||||
AddSubscriberFile = Upload a text file containing mail addresses to be added:
|
||||
SuggestDefaultPath = It is recommended to use the default path for the moderation database. Otherwise you cannot manage the moderators' list with ezmlm-web.
|
||||
FooterText = a web interface for
|
||||
NoListsAvailable = I could not find any accessible list for you.
|
||||
ConfirmDelete = Do you really want to remove this list completely?
|
||||
CustomizedFiles = customized files
|
||||
DefaultFiles = default files
|
||||
ListLanguage = Language of the list
|
||||
ListCharset = Charset of the list
|
||||
ModSubOverridesRemote = Hint: if both the database of subscripton moderators and of remote administrators use customized locations, then the database of subscription moderators will be used for both of them
|
||||
GnupgNoPublicKeys = There are no public keys available.
|
||||
GnupgNoSecretKeys = There are no secret keys available.
|
||||
GnupgImportKey = Import a new key from a file:
|
||||
GnupgKeyName = Name of the key
|
||||
GnupgKeyComment = Comment (optional)
|
||||
GnupgKeySize = Length of the key (bytes)
|
||||
GnupgKeyExpires = Expiration time (years)
|
||||
Never = never
|
||||
NoDomainsAvailable = No domains are available.
|
||||
CopyLinesEnabled = Add some lines of every original message to automatic replies
|
||||
CopyLinesNumber = number of lines
|
||||
Interfaces {
|
||||
easy = basic
|
||||
normal = default
|
||||
expert = expert
|
||||
}
|
||||
MailAddress = Mail address
|
||||
SubscribeAction = Event
|
||||
SubscribeActionDetails = Details
|
||||
SubscribeActions {
|
||||
remove = removed
|
||||
add = added
|
||||
manual = by admin
|
||||
probe = delivery failed
|
||||
auto = via mail
|
||||
unknown = unknown
|
||||
}
|
||||
Date = Date
|
||||
}
|
||||
|
||||
|
||||
Introduction {
|
||||
ConfigAdmin = Remote administrators are (by default) also moderators for subscription and for posting. They may have the permission to (un)subscribe users and to change the text files of the list by sending emails to the mailing list software.
|
||||
ConfigArchive = The mailing list archive can be accessed by mail. Additionally you will want to create a list archive, if you plan to publish it (e.g. with ezmlm-www).
|
||||
ConfigProcess = Modify some message properties, before they are distributed to the subscribers.
|
||||
ConfigMain = Here you find some settings, that did not fit into any other category.
|
||||
ConfigPosting = The posting configuration determines, who is allowed to send messages to the list and how these mails will be processed.
|
||||
ConfigSub = Here you may define, who is allowed to subscribe to the list and you can set some details of the subscription process.
|
||||
ConfigAll = This is the complete list of all available properties of the list. Usually it should be easier to use the topic-based configuration pages, but - of course - this is your choice.
|
||||
ListDelete = This mailinglist and everything inside of it will be removed completely.
|
||||
AllowList = Members of the allow list will not receive outgoing mails, but they have the same rights, as normal subscribers. Usually the allow list will contain mail aliases of subscribers.
|
||||
DenyList = If you want to prevent specific mail addresses from using this list (subscription, posting, ...), then you should add them to the deny list and activate it. This can be useful for annoying people and even for notorious vacation reply users. But since it is fairly easy to fake an mail address, this will not really improve security.
|
||||
DigestList = Some users of your mailing list may prefer to receive a regular digest instead of all mailing list messages. They will usually not take part in discussions, but aret somehow interested anyway.
|
||||
ModList = Moderators (for posting or subscription) and remote administrators can be allowed to manage the most important parts of mailing list administration: moderating subscription and posting, changing filtering rules, and managing users. Moderators may even be configured to be the only ones, who are allowed to send mails to the mailing list.
|
||||
SubscriberList = Subscribers of a mailing list will receive all outgoing message of the list. They may also be allowed to post messages directly or moderated. Usually anonymous users are able to subscribe and unsubscribe without the help of an administrator - but of course, you may configure this to suit your needs.
|
||||
TextFiles = The selection box contains a list of files available in the DIR/text directory. These files are sent out in response to specfic user requests or as part of all outgoing messages. Edit them as necessary.
|
||||
EditTextFile = Change this text according to your needs. Maybe you would like to use some of the reserved tags, that are described at the bottom of this page.
|
||||
ResetTextFile = This text file was customized for this list. If you want to use the system-wide default text file of the choosen language instead, you may remove this customized file.
|
||||
GpgEzmlmConvert = You can convert a normal mailinglist to an encrypted list and vice versa.
|
||||
GnupgGenerateKey = Every encrypted mailing list needs a secret key. You can import this key or create it using the form below. After submitting the form, you have to be patient, as it takes some time (up to several minutes) to create a key.
|
||||
GpgEzmlmOptions = Configure some useful settings of the encrypted mailing list.
|
||||
GnupgSecret = Every every mailing list needs a secret key to decrypt incoming. You should take care that the secret key is kept safe. Otherwise the security of your mailing list is broken.
|
||||
GnupgPublic = There should be a public key for every subscriber of the mailing list. Additionally there is the key of the mailing list, which should be distributed to all subscribers. It is safe to openly publish public keys.
|
||||
}
|
||||
|
||||
Legend {
|
||||
ConfigAdmin = Remote administrator's permissions
|
||||
ConfigArchive = Archive configuration
|
||||
ConfigPosting = Posting rules
|
||||
ConfigSub = Subscription details
|
||||
ConfigMain = General list configuration
|
||||
ConfigProcess = Processing rules
|
||||
ConfigAll = Available properties
|
||||
ListCreate = Properties of the new list
|
||||
ListDelete = Remove this mailinglist
|
||||
RelevantOptions = Useful settings
|
||||
MembersList = Manage subscribers
|
||||
MembersAllow = Manage allowed users
|
||||
MembersDeny = Manage blocked users
|
||||
MembersDigest = Manage digest subscribers
|
||||
MembersMod = Manage moderators and administrators
|
||||
TextFiles = Available text files
|
||||
TextFileEdit = Edit content of text file
|
||||
TextFileReset = Discard customized text
|
||||
TextFileInfo = Useful placeholders
|
||||
AvailableLists = Available lists
|
||||
SubscribeLog = Events
|
||||
GpgEzmlmConvert = Encryption support
|
||||
GnupgPublicKeys = Public keys of this list
|
||||
GnupgSecretKeys = Secret keys of this list
|
||||
GnupgKeyImport = Import a key
|
||||
GnupgGenerateKey = Generate the key for this list
|
||||
GpgEzmlmOptions = Encryption settings
|
||||
AvailableDomains = Available domains
|
||||
}
|
||||
}
|
||||
|
25
ezmlm-web-3.3.1/man/ezmlm-web-make-suid.1
Normal file
25
ezmlm-web-3.3.1/man/ezmlm-web-make-suid.1
Normal file
|
@ -0,0 +1,25 @@
|
|||
.TH ezmlm-web-make-suid 1 "January 02006" "ezmlm-web" "helper script"
|
||||
.SH NAME
|
||||
ezmlm-web-make-suid \- create user-specific suid wrappers for ezmlm-web
|
||||
.SH SYNOPSIS
|
||||
.B ezmlm-web-make-suid
|
||||
[\fIUSERNAME\fR] \fIDESTINATION_FILE\fR
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
Create a user-specific copy of the suid wrapper for ezmlm-web. This is
|
||||
necessary, as the mailing lists are usually not owned by the user of the
|
||||
webserver, that executes the cgi.
|
||||
.PP
|
||||
The destination file determines where to put the resulting wrapper.
|
||||
.PP
|
||||
Only root is allowed to choose a username.
|
||||
.SH EXAMPLES
|
||||
.PP
|
||||
ezmlm-web-make-suid john ~john/public_html/ezmlm-web
|
||||
.SH AUTHOR
|
||||
Written by Lars Kruse
|
||||
.SH "REPORTING BUGS"
|
||||
Report bugs to <devel@sumpfralle.de>
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 02006 Lars Kruse
|
||||
|
21
ezmlm-web-3.3.1/man/ezmlm-web.wrapper.1
Normal file
21
ezmlm-web-3.3.1/man/ezmlm-web.wrapper.1
Normal file
|
@ -0,0 +1,21 @@
|
|||
.TH ezmlm-web.wrapper 1 "May 02006" "ezmlm-web" "suid wrapper"
|
||||
.SH NAME
|
||||
ezmlm-web.wrapper \- pre-compiled (binary) template for suid wrappers around ezmlm-web
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
This pre-compiled (binary) wrapper for ezmlm-web can be used as a template for
|
||||
user-specific suid binary wrappers.
|
||||
|
||||
To create a user-specific suid binary wrapper, you may use one of the following
|
||||
methods:
|
||||
1.) run ezmlm-web-make-suid
|
||||
2.) copy/chmod/chown the wrapper file manually
|
||||
.SH AUTHOR
|
||||
Written by Lars Kruse
|
||||
.SH "REPORTING BUGS"
|
||||
Report bugs to <devel@sumpfralle.de>
|
||||
.SH SEE ALSO
|
||||
ezmlm-web-make-suid(1)
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 02006 Lars Kruse
|
||||
|
157
ezmlm-web-3.3.1/man/ezmlmwebrc.5
Normal file
157
ezmlm-web-3.3.1/man/ezmlmwebrc.5
Normal file
|
@ -0,0 +1,157 @@
|
|||
.TH ezmlmwebrc 5 "April 02007" "ezmlm-web" "configuration file"
|
||||
.SH NAME
|
||||
ezmlmwebrc \- configuration file for ezmlm-web
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
\fBezmlmwebrc\fR contains the configuration settings necessary for ezmlm-web.
|
||||
.PP
|
||||
The file is required for ezmlm-web and must exist in one of the following
|
||||
locations:
|
||||
.IP \fB~/.ezmlmwebrc\fR
|
||||
user-specific configuration file
|
||||
.IP \fB/etc/ezmlm-web/ezmlmwebrc\fR
|
||||
system-wide default configuration file
|
||||
.IP \fB/etc/ezmlm/ezmlmwebrc\fR
|
||||
system-wide default configuration file (deprecated since v2.2)
|
||||
.PP
|
||||
Additionally the location of the configuration file may be overriden by the
|
||||
command line switch \fB\-C\fR of \fIezmlm-web.cgi (1p)\fR.
|
||||
.SH FILE FORMAT
|
||||
.PP
|
||||
The file itself is sourced by the perl script \fIezmlm-web.cgi\fR, so it is
|
||||
required that the file conforms to the syntax of perl scripts. See the
|
||||
manpage of perl (1) for details.
|
||||
.PP
|
||||
You should avoid to declare other variables than the settings described below.
|
||||
Otherwise you may run into namespace conflicts. Just don't do it.
|
||||
.PP
|
||||
You may rely on the existence (and meaningful content) of the following
|
||||
variables:
|
||||
.IP \fI$USER\fR
|
||||
the name of the owner of the current process
|
||||
.IP \fI$HOME\fR
|
||||
the home directory of the owner of the current process
|
||||
.SH REQUIRED SETTINGS
|
||||
.IP \fB$LIST_DIR\fR
|
||||
This is the directory containing the lists, that you want to manage via
|
||||
ezmlm-web. It will be created automatically if it does not exist yet.
|
||||
The value \fI$HOME/lists\fR should be quite reasonable.
|
||||
.IP \fB$LANGUAGE_DIR\fR
|
||||
This directory contains the language files of ezmlm-web (e.g. \fIen.hdf\fR).
|
||||
Usually this should be something like \fI/usr/local/share/ezmlm-web/lang\fR.
|
||||
.IP \fB$TEMPLATE_DIR\fR
|
||||
This directory contains the template files of ezmlm-web (e.g. \fImain.cs\fR).
|
||||
Usually this should be something like
|
||||
\fI/usr/local/share/ezmlm-web/template\fR.
|
||||
.SH OPTIONAL SETTINGS
|
||||
.IP \fB$DEFAULT_OPTIONS\fR
|
||||
Specify the default options used for ezmlm-make (1) when creating a new list.
|
||||
The default value is: \fIaBDFGHiJkLMNOpQRSTUWx\fR. See the manpage of
|
||||
ezmlm-make (1) for details.
|
||||
.IP \fB$ALIAS_USER\fR
|
||||
The alias user of a qmail installation manages all mail addresses that are
|
||||
not handled by specific dotqmail files or other definitions. It defaults to
|
||||
\fIalias\fR.
|
||||
.IP \fB$QMAIL_BASE\fR
|
||||
This is the control directory of your qmail setup. It defaults to
|
||||
\fI/var/qmail/control\fR.
|
||||
.IP \fB$DOTQMAIL_DIR\fR
|
||||
The directory of the dotqmail (5) files of the lists managed by ezmlm-web.
|
||||
It defaults to the home directory of the owner of the current process
|
||||
(\fI$HOME\fR).
|
||||
.IP \fB$WEBUSERS_FILE\fR
|
||||
This file contains the access rules for the lists managed by ezmlm-web.
|
||||
Read the README file of ezmlm-web for details. This setting defaults to
|
||||
\fI$LISTS/webusers\fR.
|
||||
.IP \fB$MAIL_DOMAIN\fR
|
||||
Specify the default domain name of new mailing lists. Leave it empty if you
|
||||
want ezmlm-web to try to detect this value automatically.
|
||||
.IP \fB$MAIL_ADDRESS_PREFIX\fR
|
||||
Specify the default prefix for the local part of the addresses of new mailing
|
||||
lists. By default it is empty ('').
|
||||
.IP \fB$PRETTY_NAMES\fR
|
||||
Do you want to store connections between real names and mail addresses if both
|
||||
were provided when adding a new subscriber? This results in a file called
|
||||
\fIwebnames\fR being created in every mailing list directory when necessary.
|
||||
.IP \fB$FILE_UPLOAD\fR
|
||||
Should the upload of subscriber files be possible? The default is \fI1\fR.
|
||||
If you consider this as a security risk, then you should set it to \fI0\fR.
|
||||
.IP \fB$UNSAFE_RM\fR
|
||||
This setting defines, if list removal requested via the web interface should
|
||||
be recoverable or not. The value \fI1\fR will make ezmlm-web remove the list
|
||||
directory completely without any chance of recovery. The default value \fI0\fR
|
||||
will just move deleted lists to a safe place. Thus deletion is recoverable.
|
||||
.IP \fB$HTML_TITLE\fR
|
||||
Print a reasonable name of the web interface to the left upper corner of every
|
||||
page. By default this string is empty.
|
||||
.IP \fB$HTML_CSS_COMMON\fR
|
||||
This is the URL of the basic stylesheet file to be used by ezmlm-web. Make sure
|
||||
it is actually available, as the design of the web interface will suffer a lot
|
||||
without it.
|
||||
.IP \fB$HTML_CSS_COLOR\fR
|
||||
The color scheme of the web interface is separated from the basic stylesheet.
|
||||
This URL should point to the location of the color scheme CSS file. Your
|
||||
interface will be plain black and white if the stylesheet is not available.
|
||||
Be aware, that some of the supplied color schemes may require additional
|
||||
files (images) in the same directory. Currently 'color-red-blue.css'
|
||||
and 'color-blue-gray.css' are available.
|
||||
.IP \fB@HTML_LINKS\fR
|
||||
This array may contain hashes with the elements \fIname\fR and \fIurl\fR.
|
||||
These links will be visible in the upper right corner of every page.
|
||||
Please pay attention to the syntax of perl and use the example configuration
|
||||
file distributed with ezmlm-web as a template. By default, this array is
|
||||
empty.
|
||||
.IP \fB$HTML_LANGUAGE\fR
|
||||
Specify the defaut language of the web interface. This value will be overriden
|
||||
when the browser requests an available language or when the user explicitly
|
||||
selects a different language. The default value is \fIen\fR.
|
||||
.IP \fB$DEFAULT_INTERFACE_TYPE\fR
|
||||
Set the default interface template. Available values are \fIeasy\fR,
|
||||
\fInormal\fR and \fIexpert\fR. The default value is \fInormal\fR.
|
||||
.IP \fB$INTERFACE_OPTIONS_BLACKLIST\fR
|
||||
Exclude some list options from being displayed via the web interface.
|
||||
BEWARE: this does not protect the specific option from being changed.
|
||||
It just hides the visible interface items. Anyone can still craft a manual
|
||||
http request, that could change the specified options.
|
||||
See the list of filenames below \fI$TEMPLATE_DIR/config_options/\fR. The
|
||||
blacklist may contain any of these filenames (without '.cs' extension).
|
||||
.IP \fB$ENCRYPTION_SUPPORT\fR
|
||||
Enable support for encrypted mailing lists. Currently this feature is still
|
||||
considered as beta quality. User reports are warmly welcome!
|
||||
.IP \fB$GPG_KEYRING_DEFAULT_LOCATION\fR
|
||||
This setting defines the default location of gnupg keyrings used for mailing list
|
||||
encryption. If the location starts with a slash ('/'), then it is considered
|
||||
to be an absolute path. Otherwise it is relative to the directory of the current
|
||||
list. For the ezmlm-gpg mailing list encryption system, the default (".gnupg") is
|
||||
usable.
|
||||
.IP \fB%DOMAINS\fR
|
||||
This hash of hashes (\fIname\fR associated with a hash of domain specific
|
||||
information) can be used to define a multi-domain setup. See the example
|
||||
configuration file (\fImultidomain.conf\fR) as distributed with ezmlm-web for
|
||||
more details.
|
||||
.SH EXAMPLES
|
||||
.IP "A minimal example configuration file:"
|
||||
.sp
|
||||
.nf
|
||||
$LIST_DIR = "$HOME_DIR/lists";
|
||||
$LANGUAGE_DIR = "/usr/local/share/ezmlm-web/lang";
|
||||
$TEMPLATE_DIR = "/usr/local/share/ezmlm-web/template";
|
||||
.IP "Some more examples of settings:"
|
||||
.sp
|
||||
.nf
|
||||
$QMAIL_BASE = $Mail::Ezmlm::QMAIL_BASE . '/control';
|
||||
$MAIL_ADDRESS_PREFIX = "lists-";
|
||||
$DEFAULT_OPTIONS = "aBDFGHiJkLMNOpQRSTUWx";
|
||||
$INTERFACE_OPTIONS_BLACKLIST = ('lang_select', 'mime_reject');
|
||||
$HTML_TITLE = "ezmlm-web - a mailinglist administration interface";
|
||||
$HTML_CSS_COMMON = "/ezmlm-web/default.css";
|
||||
$HTML_CSS_COLOR = "/ezmlm-web/color-red-blue.css";
|
||||
$HTML_LANGUAGE = "en";
|
||||
$GPG_KEYRING_DEFAULT_LOCATION = ".gnupg";
|
||||
.SH AUTHOR
|
||||
Written by Lars Kruse
|
||||
.SH "REPORTING BUGS"
|
||||
Report bugs to <devel@sumpfralle.de>
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 02007 Lars Kruse
|
||||
|
60
ezmlm-web-3.3.1/man/webusers.5
Normal file
60
ezmlm-web-3.3.1/man/webusers.5
Normal file
|
@ -0,0 +1,60 @@
|
|||
.TH webusers 5 "April 02007" "ezmlm-web" "access configuration file"
|
||||
.SH NAME
|
||||
webusers \- define the access permissions for a directory of lists
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
\fBwebusers\fR contains the access definitions for the lists below a certain
|
||||
directory.
|
||||
.PP
|
||||
This file is optional. The actions of users are unrestricted, if the
|
||||
\fBwebusers\fR file does not exist. Be careful when using this setting.
|
||||
.PP
|
||||
A webusers file is only useful if you can request some kind of authentication
|
||||
from the user. Usually this should be done via http-authentication. See
|
||||
the INSTALL file for more details.
|
||||
.SH LOCATION
|
||||
By default the \fBwebusers\fR file is located in the same directory as the
|
||||
mailing lists. This can be adjusted with the setting \fIWEBUSERS_FILE\fR in
|
||||
the configuration file ezmlmwebrc (5). Read its manpage for details.
|
||||
.SH FILE FORMAT
|
||||
.IP "The file consists of lines of the following form:"
|
||||
.sp
|
||||
.nf
|
||||
LISTNAME: USER1 USER2
|
||||
.PP
|
||||
Empty lines and lines starting with a '#' are ignored. The same goes for
|
||||
invalid configuration lines.
|
||||
.PP
|
||||
If \fILISTNAME\fR equals the string \fIALL\fR, then the following users are
|
||||
allowed to manage all existing mailing lists.
|
||||
.PP
|
||||
If \fILISTNAME\fR equals the string \fIALLOW_CREATE\fR, then the following
|
||||
users are allowed to create new lists.
|
||||
.PP
|
||||
Otherwise the named users are allowed to manage only list \fILISTNAME\fR.
|
||||
.PP
|
||||
If one of the usernames equals the string \fIALL\fR, then every authenticated
|
||||
user is allowed to perform the action specified by \fILISTNAME\fR.
|
||||
.SH EXAMPLES
|
||||
.IP "A minimal example access configuration file:"
|
||||
.sp
|
||||
.nf
|
||||
comm: guy arb
|
||||
users: arb
|
||||
members: ALL
|
||||
ALL: root
|
||||
ALLOW_CREATE: root guy
|
||||
.PP
|
||||
In the example above, the users \fIroot\fR and \fIguy\fR are allowed to create
|
||||
new lists.
|
||||
.PP
|
||||
Every authenticated user may configure the list \fImembers\fR.
|
||||
.PP
|
||||
The user \fIroot\fR can manage all mailing lists.
|
||||
.SH AUTHOR
|
||||
Written by Lars Kruse
|
||||
.SH "REPORTING BUGS"
|
||||
Report bugs to <devel@sumpfralle.de>
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 02007 Lars Kruse
|
||||
|
3
ezmlm-web-3.3.1/package.exclude
Normal file
3
ezmlm-web-3.3.1/package.exclude
Normal file
|
@ -0,0 +1,3 @@
|
|||
intl
|
||||
spec
|
||||
package.exclude
|
84
ezmlm-web-3.3.1/scripts/fetch_po_files.sh
Executable file
84
ezmlm-web-3.3.1/scripts/fetch_po_files.sh
Executable file
|
@ -0,0 +1,84 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# this script symlinks all ezmlm-web po files to a language directory
|
||||
# structure, as it is used by the pootle translation server
|
||||
#
|
||||
# all language files are chgrp'ed to the 'pootle' group and group write
|
||||
# permissions are added
|
||||
#
|
||||
# call this script whenever you add _new_ languages to your translation server
|
||||
#
|
||||
# it is useful to be root while calling it - otherwise chgrp will fail
|
||||
#
|
||||
#
|
||||
# Copyright 2007 Lars Kruse <devel@sumpfralle.de>
|
||||
#
|
||||
# This file is part of ezmlm-web.
|
||||
#
|
||||
# ezmlm-web is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# ezmlm-web is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with the ezmlm-web; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
|
||||
set -eu
|
||||
|
||||
test $# -ne 1 && echo "Usage: $(basename $0) TARGET_DIR" && exit 1
|
||||
|
||||
test ! -d "$1" && echo "target directory does not exist: '$1'" && exit 1
|
||||
|
||||
if test "$(id -u)" == 0
|
||||
then is_root=1
|
||||
else is_root=0
|
||||
echo "$(basename $0) not running as root: the language files will not be writeable for pootle" >&2
|
||||
echo " run this script as root to change the permissions of the language files appropriately" >&2
|
||||
fi
|
||||
|
||||
DEST_GROUP=pootle
|
||||
TARGETPATH=${1%/}
|
||||
# BASEPATH must be absolute
|
||||
BASEPATH=$(cd $(dirname "$0")/..; pwd)
|
||||
|
||||
############# functions ###############
|
||||
|
||||
# symlink a language file and chgrp if possible
|
||||
# Paramters: LANG_FILE LANGUAGE
|
||||
process_language_file()
|
||||
{
|
||||
test ! -d "${TARGETPATH}/$2" && mkdir -p "${TARGETPATH}/$2"
|
||||
ln -sfn "$1" "${TARGETPATH}/$2/"
|
||||
if test "$is_root" == 1
|
||||
then chgrp "$DEST_GROUP" "$1" "$TARGETPATH/$2"
|
||||
chmod g+w "$1" "$TARGETPATH/$2"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
############# main #################
|
||||
|
||||
|
||||
for language in $(ls ${BASEPATH}/intl/) ; do
|
||||
test ! -d "${BASEPATH}/intl/${language}" && continue
|
||||
echo "Processing $language ..."
|
||||
[ ! -d ${TARGETPATH}/${language} ] && mkdir -p ${TARGETPATH}/${language}
|
||||
## base translation
|
||||
find "${BASEPATH}/intl/${language}" -name \*.po | while read fname
|
||||
do process_language_file "$fname" "$language"
|
||||
done
|
||||
done
|
||||
|
||||
echo "Processing template files ..."
|
||||
find ${BASEPATH}/intl -type f -name \*.pot | while read fname
|
||||
do process_language_file "$fname" "template"
|
||||
done
|
||||
|
337
ezmlm-web-3.3.1/scripts/update_language_files.py
Executable file
337
ezmlm-web-3.3.1/scripts/update_language_files.py
Executable file
|
@ -0,0 +1,337 @@
|
|||
#!/usr/bin/env python
|
||||
#-*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright 2007 Lars Kruse <devel@sumpfralle.de>
|
||||
#
|
||||
# This file is part of ezmlm-web.
|
||||
#
|
||||
# All available hdf language files are parsed for creating pot (po-template) files.
|
||||
# All existing po-file are merged with these templates to remove obsolete msgids.
|
||||
# Additionally every msgstr of the english original is set to the value of the
|
||||
# respective msgid.
|
||||
# All resulting po files are chmod'ed to 0666 - this is useful if you locally use
|
||||
# services like pootle.
|
||||
# If there were no changes besides the "POT-Creation-Date" header, then the file
|
||||
# is reverted via svn to avoid unnecessary commits.
|
||||
#
|
||||
#
|
||||
# ezmlm-web is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# ezmlm-web is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with ezmlm-web; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
|
||||
import os
|
||||
import sys
|
||||
try:
|
||||
import translate.storage.po, translate.convert.pot2po, translate.tools.pocompile
|
||||
except ImportError, errMsg:
|
||||
sys.stderr.write("Failed to import a python module of the 'translate' package!\n")
|
||||
sys.stderr.write("Please install the appropriate files - for debian just do 'apt-get install translate-toolkit'.\n")
|
||||
sys.stderr.write("\tOriginal error message: %s\n\n" % errMsg)
|
||||
sys.exit(1)
|
||||
try:
|
||||
import neo_cgi, neo_util
|
||||
except ImportError, errMsg:
|
||||
sys.stderr.write("Failed to import a python module of the 'clearsilver' package!\n")
|
||||
sys.stderr.write("Please install the appropriate files - for debian just do 'apt-get install python-clearsilver'.\n")
|
||||
sys.stderr.write("\tOriginal error message: %s\n\n" % errMsg)
|
||||
sys.exit(1)
|
||||
try:
|
||||
import subprocess
|
||||
except ImportError, errMsg:
|
||||
sys.stderr.write("Failed to import the python module 'subprocess'!\n")
|
||||
sys.stderr.write("Please install python v2.4 or higher.\n")
|
||||
sys.stderr.write("\tOriginal error message: %s\n\n" % errMsg)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
HDF_DIR = 'lang'
|
||||
## name of the main domain and prefix for all plugin domains
|
||||
GETTEXT_DOMAIN = 'ezmlm-web'
|
||||
## set the msgstrs for this language to the value of the respective msgids
|
||||
DEFAULT_LANG = 'en'
|
||||
PO_DIR = 'intl'
|
||||
## mail adress for translation bugs
|
||||
MAIL_ADDRESS = 'devel@sumpfralle.de'
|
||||
## the complete list of languages wastes a lot of space - for now we use only a few
|
||||
#ALL_LANGUAGES = "af aka am ar bn ca cs da de el en es et eu fa fi fr fur gl he hi hr hu hy is it ja ka kg ko ku lt lv mr ms mt nb ne nl nn ns pa pl pt ru sl sr st sv tr uk ve vi xh".split(" ")
|
||||
ALL_LANGUAGES = "cs da de en es fi fr hu it ja nl pl pt pt_BR ru sl sv".split(" ")
|
||||
|
||||
## use subversion for reverting?
|
||||
USE_SVN = True
|
||||
|
||||
LANGUAGE_NAMES = {
|
||||
"cs": 'Český',
|
||||
"da": 'Dansk',
|
||||
"de": 'Deutsch',
|
||||
"en": 'English',
|
||||
"es": 'Español',
|
||||
"fi": 'Suomi',
|
||||
"fr": 'Français',
|
||||
"hu": 'Magyar',
|
||||
"it": 'Italiano',
|
||||
"ja": '日本語',
|
||||
"nl": 'Nederlands',
|
||||
"pl": 'Polski',
|
||||
"pt": 'Português',
|
||||
"pt_BR": 'Português do Brasil',
|
||||
"ru": 'Русский',
|
||||
"sl": 'Slovensko',
|
||||
"sv": 'Svenska',
|
||||
}
|
||||
|
||||
## which languages should fall back to another language (instead of english)
|
||||
## necessary e.g. for the 100%-fuzzy release of "pt" based on "pt_BR"
|
||||
FALLBACK_DEFINITIONS = {
|
||||
"pt": [ "pt_BR" ],
|
||||
}
|
||||
|
||||
# --------------=-=-=- functions -=-=-=--------------------
|
||||
|
||||
def revert_if_unchanged(po_file):
|
||||
try:
|
||||
proc = subprocess.Popen(
|
||||
shell = False,
|
||||
stdout = subprocess.PIPE,
|
||||
args = [ "svn", "diff", po_file ] )
|
||||
except OSError, err_msg:
|
||||
sys.stderr.write("Failed to execute subversion's diff: %s\n" % err_msg)
|
||||
return
|
||||
(stdout, stderr) = proc.communicate()
|
||||
if proc.returncode != 0:
|
||||
sys.stderr.write("Subversion returned an error: %d\n" % proc.returncode)
|
||||
return
|
||||
## no changes at all?
|
||||
if not stdout:
|
||||
return
|
||||
lines = [ l for l in stdout.splitlines()
|
||||
if ((l.find("POT-Creation-Date:") < 0 ) and \
|
||||
((l.startswith("+") and (not l.startswith("+++"))) or \
|
||||
(l.startswith("-") and (not l.startswith("---"))))) ]
|
||||
## were there relevant changes?
|
||||
if lines:
|
||||
return
|
||||
## revert to previous state
|
||||
proc = subprocess.Popen(
|
||||
shell = False,
|
||||
args = [ "svn", "revert", po_file ] )
|
||||
proc.wait()
|
||||
|
||||
|
||||
def generate_po_files(hdf_file, po_dir, textDomain):
|
||||
## prepare hdf
|
||||
if ((not os.path.isfile(hdf_file)) or (not os.access(hdf_file, os.R_OK))):
|
||||
sys.stderr.write("Unable to read the hdf file: %s\n" % hdf_file)
|
||||
return
|
||||
if not os.path.isdir(po_dir):
|
||||
os.mkdir(po_dir)
|
||||
pot_file = os.path.join(po_dir, "%s.pot" % textDomain)
|
||||
hdf = neo_util.HDF()
|
||||
hdf.readFile(hdf_file)
|
||||
## update pot
|
||||
if not os.path.isfile(pot_file):
|
||||
sys.stdout.write("Creating: %s\n" % pot_file)
|
||||
pot = translate.storage.po.pofile(encoding="utf-8")
|
||||
pot.makeheader(pot_creation_date=True)
|
||||
pot.updateheader(add=True, Project_Id_Version='ezmlm-web 3.3', pot_creation_date=True, language_team='Lars Kruse <%s>' % MAIL_ADDRESS, Report_Msgid_Bugs_To=MAIL_ADDRESS, encoding='utf-8', Plural_Forms=['nplurals=2','plural=(n != 1)'])
|
||||
#TODO: somehow we need 'updateheaderplural'
|
||||
else:
|
||||
sys.stdout.write("Loading: %s\n" % pot_file)
|
||||
pot = translate.storage.po.pofile.parsefile(pot_file)
|
||||
## remove all msgids - we will add them later
|
||||
pot.units = []
|
||||
## add new entries
|
||||
def walk_hdf(prefix, node):
|
||||
def addPoItem(hdf_node):
|
||||
## ignore hdf values with a "LINK" attribute
|
||||
for (key, value) in hdf_node.attrs():
|
||||
if key == "LINK":
|
||||
return
|
||||
if not hdf_node.value():
|
||||
return
|
||||
item = pot.findunit(hdf_node.value())
|
||||
if not item:
|
||||
item = pot.addsourceunit(hdf_node.value())
|
||||
item.addlocation("%s%s" % (prefix, hdf_node.name()))
|
||||
while node:
|
||||
if node.name():
|
||||
new_prefix = prefix + node.name() + '.'
|
||||
else:
|
||||
new_prefix = prefix
|
||||
## as the attribute feature of clearsilver does not work yet, we
|
||||
## have to rely on magic names to prevent the translation of links
|
||||
if not (new_prefix.endswith(".Link.Rel.") \
|
||||
or new_prefix.endswith(".Link.Prot.") \
|
||||
or new_prefix.endswith(".Link.Abs.") \
|
||||
or new_prefix.endswith(".Link.Attr1.name.") \
|
||||
or new_prefix.endswith(".Link.Attr1.value.") \
|
||||
or new_prefix.endswith(".Link.Attr2.name.") \
|
||||
or new_prefix.endswith(".Link.Attr2.value.") \
|
||||
or new_prefix == "Lang.Name."):
|
||||
addPoItem(node)
|
||||
walk_hdf(new_prefix, node.child())
|
||||
node = node.next()
|
||||
walk_hdf("",hdf)
|
||||
pot.savefile(pot_file)
|
||||
## create po files
|
||||
for ld in ALL_LANGUAGES:
|
||||
if not os.path.isdir(os.path.join(po_dir,ld)):
|
||||
os.mkdir(os.path.join(po_dir, ld))
|
||||
if not os.path.isdir(os.path.join(po_dir,ld, 'LC_MESSAGES')):
|
||||
os.mkdir(os.path.join(po_dir, ld, 'LC_MESSAGES'))
|
||||
po_file = os.path.join(po_dir, ld, 'LC_MESSAGES', "%s.po" % textDomain)
|
||||
if not os.path.isfile(po_file):
|
||||
translate.convert.pot2po.convertpot(file(pot_file), file(po_file,'w'), None)
|
||||
else:
|
||||
po2_file = po_file + '.new'
|
||||
translate.convert.pot2po.convertpot(file(pot_file), file(po2_file,'w'), file(po_file))
|
||||
os.rename(po2_file, po_file)
|
||||
if ld == DEFAULT_LANG:
|
||||
## set every msgstr to the respective msgid
|
||||
po_data = translate.storage.po.pofile.parsefile(po_file)
|
||||
po_data.removeduplicates()
|
||||
for po_unit in po_data.units:
|
||||
po_unit.settarget(po_unit.getsource())
|
||||
po_data.savefile(po_file)
|
||||
else:
|
||||
po_data = translate.storage.po.pofile.parsefile(po_file)
|
||||
po_data.removeduplicates()
|
||||
## go through all msgstr and remove empty ones
|
||||
for index in range(len(po_data.units)-1, 0, -1):
|
||||
if po_data.units[index].isfuzzy() and \
|
||||
(po_data.units[index].msgidlen() == 0):
|
||||
po_data.units.remove(po_data.units[index])
|
||||
po_data.savefile(po_file)
|
||||
if USE_SVN:
|
||||
revert_if_unchanged(po_file)
|
||||
## make it writeable for pootle
|
||||
os.chmod(po_file, 0666)
|
||||
## compile po file
|
||||
mo_file = po_file[:-3] + '.mo'
|
||||
translate.tools.pocompile.convertmo(file(po_file), file(mo_file,'w'), file(pot_file))
|
||||
|
||||
|
||||
def generate_translated_hdf_files(orig_hdf_file, po_dir, hdf_dir, textdomain):
|
||||
for lang in ALL_LANGUAGES:
|
||||
if lang != DEFAULT_LANG:
|
||||
## are there any language fallbacks? (e.g. "de" for "de_AT")
|
||||
if lang in FALLBACK_DEFINITIONS:
|
||||
src_languages = FALLBACK_DEFINITIONS[lang]
|
||||
else:
|
||||
src_languages = []
|
||||
## first choice: always the language itself
|
||||
src_languages.insert(0, lang)
|
||||
generate_translated_hdf_file(orig_hdf_file, po_dir, hdf_dir,
|
||||
textdomain, lang, src_languages)
|
||||
|
||||
|
||||
def generate_translated_hdf_file(orig_hdf_file, po_dir, hdf_dir, textdomain,
|
||||
language, src_languages):
|
||||
import gettext
|
||||
## prepare original hdf
|
||||
if ((not os.path.isfile(orig_hdf_file)) or (not os.access(orig_hdf_file, os.R_OK))):
|
||||
sys.stderr.write("Unable to read the hdf file: %s\n" % orig_hdf_file)
|
||||
return
|
||||
hdf = neo_util.HDF()
|
||||
hdf.readFile(orig_hdf_file)
|
||||
## name of new hdf file
|
||||
new_hdf_file = os.path.join(hdf_dir, language + '.hdf')
|
||||
## create translation object
|
||||
translator = gettext.translation(
|
||||
textdomain,
|
||||
localedir = po_dir,
|
||||
languages = src_languages)
|
||||
## translate entries
|
||||
## count the number of translated items - so we can decide later, if we
|
||||
## want to create the language file
|
||||
def walk_hdf(prefix, node):
|
||||
translate_count = 0
|
||||
def addHdfItem(hdf_node):
|
||||
## ignore hdf values with a "LINK" attribute
|
||||
for (key, value) in hdf_node.attrs():
|
||||
if key == "LINK":
|
||||
return
|
||||
if not hdf_node.value():
|
||||
return
|
||||
translated = translator.gettext(hdf_node.value())
|
||||
if translated:
|
||||
hdf.setValue("%s%s" % (prefix, hdf_node.name()), translated)
|
||||
return True
|
||||
else:
|
||||
hdf.setValue("%s%s" % (prefix, hdf_node.name()), hdf_node.value())
|
||||
return False
|
||||
while node:
|
||||
if node.name():
|
||||
new_prefix = prefix + node.name() + '.'
|
||||
else:
|
||||
new_prefix = prefix
|
||||
## as the attribute feature of clearsilver does not work yet, we
|
||||
## have to rely on magic names to prevent the translation of links
|
||||
if (new_prefix.endswith(".Link.Rel.") \
|
||||
or new_prefix.endswith(".Link.Prot.") \
|
||||
or new_prefix.endswith(".Link.Abs.") \
|
||||
or new_prefix.endswith(".Link.Attr1.name.") \
|
||||
or new_prefix.endswith(".Link.Attr1.value.") \
|
||||
or new_prefix.endswith(".Link.Attr2.name.") \
|
||||
or new_prefix.endswith(".Link.Attr2.value.")):
|
||||
pass
|
||||
elif new_prefix == "Lang.Name.":
|
||||
# set the "Lang.Name" attribute properly
|
||||
# remove trailing dot
|
||||
new_prefix = new_prefix.strip(".")
|
||||
if language in LANGUAGE_NAMES:
|
||||
hdf.setValue(new_prefix, LANGUAGE_NAMES[language])
|
||||
else:
|
||||
hdf.setValue(new_prefix, language)
|
||||
else:
|
||||
if addHdfItem(node):
|
||||
translate_count += 1
|
||||
translate_count += walk_hdf(new_prefix, node.child())
|
||||
node = node.next()
|
||||
return translate_count
|
||||
translated_items_count = walk_hdf("", hdf)
|
||||
## if there was at least one valid translation, then we should write
|
||||
## the language file
|
||||
if translated_items_count > 0:
|
||||
print "Writing translation: %s" % language
|
||||
hdf.writeFile(new_hdf_file)
|
||||
else:
|
||||
print "Skipping empty translation: %s" % language
|
||||
|
||||
|
||||
|
||||
# ----------------=-=-=- main -=-=-=-----------------------
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
## the project directory is the parent of the directory of this script
|
||||
PROJECT_DIR = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]),os.path.pardir))
|
||||
|
||||
## ignore subversion, if we are not called from within a working copy
|
||||
## very useful for the release script (make-tar.sh)
|
||||
if not os.path.isdir(os.path.join(PROJECT_DIR, ".svn")):
|
||||
USE_SVN = False
|
||||
|
||||
generate_po_files(
|
||||
os.path.join(PROJECT_DIR, HDF_DIR, DEFAULT_LANG + '.hdf'),
|
||||
os.path.join(PROJECT_DIR, PO_DIR),
|
||||
GETTEXT_DOMAIN)
|
||||
|
||||
generate_translated_hdf_files(
|
||||
os.path.join(PROJECT_DIR, HDF_DIR, DEFAULT_LANG + '.hdf'),
|
||||
os.path.join(PROJECT_DIR, PO_DIR),
|
||||
os.path.join(PROJECT_DIR, HDF_DIR),
|
||||
GETTEXT_DOMAIN)
|
||||
|
40
ezmlm-web-3.3.1/spec/actions-spec.txt
Normal file
40
ezmlm-web-3.3.1/spec/actions-spec.txt
Normal file
|
@ -0,0 +1,40 @@
|
|||
subscribers
|
||||
list
|
||||
[part]
|
||||
address_add
|
||||
list
|
||||
[part]
|
||||
[mailaddress_add]
|
||||
[mailaddressfile]
|
||||
address_del
|
||||
list
|
||||
[part]
|
||||
mailaddress_del
|
||||
list_select
|
||||
list_delete_ask
|
||||
list
|
||||
list_delete_do
|
||||
list
|
||||
list_create_ask
|
||||
list_create_do
|
||||
list
|
||||
inlocal
|
||||
inhost
|
||||
[options]
|
||||
[sql]
|
||||
config_ask
|
||||
list
|
||||
[config_subset]
|
||||
config_do
|
||||
list
|
||||
[config_subset]
|
||||
[options]
|
||||
textfiles
|
||||
list
|
||||
textfile_edit
|
||||
list
|
||||
file
|
||||
textfile_save
|
||||
list
|
||||
file
|
||||
content
|
62
ezmlm-web-3.3.1/spec/hdf-spec.txt
Normal file
62
ezmlm-web-3.3.1/spec/hdf-spec.txt
Normal file
|
@ -0,0 +1,62 @@
|
|||
ScriptName
|
||||
LanguageDir
|
||||
TemplateDir
|
||||
Stylesheet
|
||||
HelpIconURL
|
||||
Config.Title
|
||||
Config.UI.Languages.[names]
|
||||
Config.UI.LinkAttrs.web_lang
|
||||
Config.UI.LinkAttrs.template
|
||||
Config.Features.GpgKeyRing
|
||||
Config.Features.GpgEzlm
|
||||
Config.Features.KeepFiles
|
||||
Config.Features.LanguageSelect
|
||||
Config.Features.CharsetSelect
|
||||
Config.Features.CopyLines
|
||||
|
||||
Data.Action
|
||||
Data.areDefaultTextsAvailable
|
||||
Data.ErrorMessage
|
||||
Data.List.Address
|
||||
Data.List.OptionsBlackList
|
||||
Data.List.CharSet
|
||||
Data.List.CustomizedFiles.*
|
||||
Data.List.DefaultFiles.*
|
||||
Data.List.Features.GpgKeyRing
|
||||
Data.List.Features.GpgEzmlm
|
||||
Data.List.File.Name
|
||||
Data.List.File.Content
|
||||
Data.List.File.isDefault
|
||||
Data.List.hasPostMod
|
||||
Data.List.hasRemoteAdmin
|
||||
Data.List.hasSubMod
|
||||
Data.List.HeaderAdd
|
||||
Data.List.HeaderRemove
|
||||
Data.List.MimeRemove
|
||||
Data.List.MimeReject
|
||||
Data.List.MsgSize.Max
|
||||
Data.List.MsgSize.Min
|
||||
Data.List.Name
|
||||
Data.List.PartType
|
||||
Data.List.PostModPath
|
||||
Data.List.Options
|
||||
Data.List.Options.[0-9]
|
||||
Data.List.Prefix
|
||||
Data.List.RemoteAdminPath
|
||||
Data.List.Settings.[0-9].value
|
||||
Data.List.Settings.[0-9].state
|
||||
Data.List.SubModPath
|
||||
Data.List.Subscribers.*
|
||||
Data.List.TrailingText
|
||||
Data.List.Type ("default" or "gnupg")
|
||||
Data.List.WebUsers
|
||||
Data.Lists.[0-9]+
|
||||
Data.ListsCount
|
||||
Data.HostName
|
||||
Data.Modules.MySQL
|
||||
Data.Permissions.Create
|
||||
Data.Permissions.FileUpload
|
||||
Data.UserName
|
||||
Data.useCharSet
|
||||
Data.WebUser.show
|
||||
Data.WebUser.UserName
|
22
ezmlm-web-3.3.1/spec/release-policy.txt
Normal file
22
ezmlm-web-3.3.1/spec/release-policy.txt
Normal file
|
@ -0,0 +1,22 @@
|
|||
1) update version number
|
||||
* changelog
|
||||
* README
|
||||
* ezmlm-web.cgi
|
||||
* UPGRADING
|
||||
* debian/changelog.Debian
|
||||
* debian/control
|
||||
|
||||
2) create new tag
|
||||
|
||||
3) create tar.gz
|
||||
./make-tar.sh X.Y.Z
|
||||
|
||||
4) create debian package
|
||||
scripts/debian
|
||||
scripts/debian check
|
||||
|
||||
5) upload debian package
|
||||
scp XYZ.deb uml-bastelecke@systemausfall.org:/data/deb-repo/incoming/unstable
|
||||
|
||||
6) update website
|
||||
|
15
ezmlm-web-3.3.1/suid-wrapper/Makefile
Normal file
15
ezmlm-web-3.3.1/suid-wrapper/Makefile
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Makefile to compile the binary suid-wrapper for ezmlm-web
|
||||
#
|
||||
# REALINSTALLBIN should be defined in the higher level Makefile
|
||||
|
||||
.PHONY: build clean
|
||||
|
||||
build:
|
||||
$(NOECHO) echo "#define EZMLM_WEB_CGI \"$(REALINSTALLBIN)/ezmlm-web.cgi\"" >index.h
|
||||
$(CC) -o index.cgi index.c
|
||||
sed 's#^EZMLM_WEB_SUID_WRAPPER=.*$$#EZMLM_WEB_SUID_WRAPPER=$(REALINSTALLBIN)/ezmlm-web.wrapper#' ezmlm-web-make-suid >ezmlm-web-make-suid.configured
|
||||
|
||||
clean:
|
||||
-rm index.cgi ezmlm-web-make-suid.configured
|
||||
$(NOECHO) echo "#define EZMLM_WEB_CGI \"/usr/bin/ezmlm-web.cgi\"" >index.h
|
||||
|
38
ezmlm-web-3.3.1/suid-wrapper/ezmlm-web-make-suid
Executable file
38
ezmlm-web-3.3.1/suid-wrapper/ezmlm-web-make-suid
Executable file
|
@ -0,0 +1,38 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# This file is part of ezmlm-web.
|
||||
#
|
||||
# it creates user-specific suid binaries for calling ezmlm-web.cgi
|
||||
#
|
||||
# parameters: [USERNAME] DESTINATION_FILE
|
||||
# e.g.: john ~john/public_html/cgi-bin/ezmlm-web
|
||||
# only root may choose a USERNAME
|
||||
#
|
||||
# Copyright (C) 2006-2007, Lars Kruse, All Rights Reserved.
|
||||
#
|
||||
# ezmlm-web is distributed under a BSD-style license. Please refer to
|
||||
# the copyright file included with the release for details.
|
||||
#
|
||||
|
||||
set -eu
|
||||
|
||||
EZMLM_WEB_SUID_WRAPPER=/usr/local/bin/ezmlm-web.wrapper
|
||||
|
||||
[ $(id -u) -ne 0 ] && [ $# -ne 1 ] && echo "Syntax (for non-root): $(basename $0) DESTINATION_FILE" >&2 && exit 1
|
||||
[ $(id -u) -eq 0 ] && [ $# -gt 2 -o $# -lt 1 ] && echo "Syntax (for root): $(basename $0) [USERNAME] DESTINATION_FILE" >&2 && exit 1
|
||||
|
||||
if [ $# -eq 1 ]
|
||||
then EZ_USER=$(id -un)
|
||||
EZ_FILE=$1
|
||||
else EZ_USER=$1
|
||||
EZ_FILE=$2
|
||||
fi
|
||||
|
||||
cp "$EZMLM_WEB_SUID_WRAPPER" "$EZ_FILE"
|
||||
if [ $(id -u) -eq 0 ]
|
||||
then chown "$EZ_USER". "$EZ_FILE" || { echo "the user '$EZ_USER' does not exist" >&2; rm "$EZ_FILE"; exit 1; }
|
||||
fi
|
||||
chmod u+s "$EZ_FILE"
|
||||
|
||||
echo "Successfully created '$EZ_FILE' for user '$EZ_USER'."
|
||||
|
38
ezmlm-web-3.3.1/suid-wrapper/index.c
Normal file
38
ezmlm-web-3.3.1/suid-wrapper/index.c
Normal file
|
@ -0,0 +1,38 @@
|
|||
/* $Id$ */
|
||||
|
||||
// define the location of your ezmlm-web.cgi file in this header file
|
||||
#include "index.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* C wrapper to allow ezmlm-web.cgi to run suid */
|
||||
/* Copyright (C) 1999/2000, Guy Antony Halse, All Rights Reserved */
|
||||
/* Copyright (C) 02005/02006, Lars Kruse, All Rights Reserved */
|
||||
/* See the README file in this distribution for copyright information */
|
||||
|
||||
int main(void) {
|
||||
|
||||
execv(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. */
|
||||
|
||||
|
||||
/* 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(EZMLM_WEB_CGI, switches);
|
||||
*/
|
||||
|
||||
|
||||
}
|
1
ezmlm-web-3.3.1/suid-wrapper/index.h
Normal file
1
ezmlm-web-3.3.1/suid-wrapper/index.h
Normal file
|
@ -0,0 +1 @@
|
|||
#define EZMLM_WEB_CGI "/usr/bin/ezmlm-web.cgi"
|
23
ezmlm-web-3.3.1/template/config_admin.cs
Normal file
23
ezmlm-web-3.3.1/template/config_admin.cs
Normal file
|
@ -0,0 +1,23 @@
|
|||
<div class="title">
|
||||
<h1><?cs var:html_escape(Lang.Title.ConfigAdmin) ?></h1>
|
||||
</div>
|
||||
|
||||
<div class="introduction">
|
||||
<p><?cs var:html_escape(Lang.Introduction.ConfigAdmin) ?></p>
|
||||
</div>
|
||||
|
||||
<fieldset>
|
||||
<legend><?cs var:html_escape(Lang.Legend.ConfigAdmin) ?> </legend>
|
||||
|
||||
<?cs call:form_header("config_admin") ?>
|
||||
<input type="hidden" name="config_subset" value="admin" />
|
||||
|
||||
<?cs call:show_options(UI.Options.Config.Admin) ?>
|
||||
|
||||
<ul><li>
|
||||
<input type="hidden" name="action" value="config_do" />
|
||||
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button></li></ul>
|
||||
|
||||
</form>
|
||||
</fieldset>
|
||||
|
23
ezmlm-web-3.3.1/template/config_all.cs
Normal file
23
ezmlm-web-3.3.1/template/config_all.cs
Normal file
|
@ -0,0 +1,23 @@
|
|||
<div class="title">
|
||||
<h1><?cs var:html_escape(Lang.Title.ConfigAll) ?></h1>
|
||||
</div>
|
||||
|
||||
<div class="introduction">
|
||||
<p><?cs var:html_escape(Lang.Introduction.ConfigAll) ?></p>
|
||||
</div>
|
||||
|
||||
<fieldset>
|
||||
<legend><?cs var:html_escape(Lang.Legend.ConfigAll) ?> </legend>
|
||||
|
||||
<?cs call:form_header("config_all") ?>
|
||||
<input type="hidden" name="config_subset" value="all" />
|
||||
|
||||
<?cs call:show_options(UI.Options.Config.Overview) ?>
|
||||
|
||||
<ul><li>
|
||||
<input type="hidden" name="action" value="config_do" />
|
||||
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button></li></ul>
|
||||
|
||||
</form>
|
||||
</fieldset>
|
||||
|
23
ezmlm-web-3.3.1/template/config_archive.cs
Normal file
23
ezmlm-web-3.3.1/template/config_archive.cs
Normal file
|
@ -0,0 +1,23 @@
|
|||
<div class="title">
|
||||
<h1><?cs var:html_escape(Lang.Title.ConfigArchive) ?></h1>
|
||||
</div>
|
||||
|
||||
<div class="introduction">
|
||||
<p><?cs var:html_escape(Lang.Introduction.ConfigArchive) ?></p>
|
||||
</div>
|
||||
|
||||
<fieldset>
|
||||
<legend><?cs var:html_escape(Lang.Legend.ConfigArchive) ?> </legend>
|
||||
|
||||
<?cs call:form_header("config_archive") ?>
|
||||
<input type="hidden" name="config_subset" value="archive" />
|
||||
|
||||
<?cs call:show_options(UI.Options.Config.Archive) ?>
|
||||
|
||||
<ul><li>
|
||||
<input type="hidden" name="action" value="config_do" />
|
||||
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button></li></ul>
|
||||
|
||||
</form>
|
||||
|
||||
</fieldset>
|
23
ezmlm-web-3.3.1/template/config_gpgezmlm.cs
Normal file
23
ezmlm-web-3.3.1/template/config_gpgezmlm.cs
Normal file
|
@ -0,0 +1,23 @@
|
|||
<div class="title">
|
||||
<h1><?cs var:html_escape(Lang.Title.GpgEzmlmOptions) ?></h1>
|
||||
</div>
|
||||
|
||||
<div class="introduction">
|
||||
<p><?cs var:html_escape(Lang.Introduction.GpgEzmlmOptions) ?></p>
|
||||
</div>
|
||||
|
||||
<fieldset>
|
||||
<legend><?cs var:html_escape(Lang.Legend.GpgEzmlmOptions) ?> </legend>
|
||||
|
||||
<?cs call:form_header("config_gpgezmlm") ?>
|
||||
<input type="hidden" name="config_subset" value="gpgezmlm" />
|
||||
|
||||
<?cs call:show_options(UI.Options.Config.GpgEzmlmOptions) ?>
|
||||
|
||||
<ul><li>
|
||||
<input type="hidden" name="action" value="config_do" />
|
||||
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button></li></ul>
|
||||
|
||||
</form>
|
||||
|
||||
</fieldset>
|
23
ezmlm-web-3.3.1/template/config_main.cs
Normal file
23
ezmlm-web-3.3.1/template/config_main.cs
Normal file
|
@ -0,0 +1,23 @@
|
|||
<div class="title">
|
||||
<h1><?cs var:html_escape(Lang.Title.ConfigMain) ?></h1>
|
||||
</div>
|
||||
|
||||
<div class="introduction">
|
||||
<p><?cs var:html_escape(Lang.Introduction.ConfigMain) ?></p>
|
||||
</div>
|
||||
|
||||
<fieldset>
|
||||
<legend><?cs var:html_escape(Lang.Legend.ConfigMain) ?> </legend>
|
||||
|
||||
<?cs call:form_header("config_main") ?>
|
||||
<input type="hidden" name="config_subset" value="main" />
|
||||
|
||||
<?cs call:show_options(UI.Options.Config.Main) ?>
|
||||
|
||||
<ul><li>
|
||||
<input type="hidden" name="action" value="config_do" />
|
||||
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button></li></ul>
|
||||
|
||||
</form>
|
||||
|
||||
</fieldset>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- administrators may edit text files via mail -->
|
||||
<?cs call:checkbox("n") ?>
|
3
ezmlm-web-3.3.1/template/config_options/admin_enabled.cs
Normal file
3
ezmlm-web-3.3.1/template/config_options/admin_enabled.cs
Normal file
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- enable remote administration -->
|
||||
<?cs call:checkbox("r") ?>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- administrators may request subscribers list -->
|
||||
<?cs call:checkbox("l") ?>
|
7
ezmlm-web-3.3.1/template/config_options/admin_path.cs
Normal file
7
ezmlm-web-3.3.1/template/config_options/admin_path.cs
Normal file
|
@ -0,0 +1,7 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<?cs if:Data.List.Options.r ?>
|
||||
<!-- custom path to remote administrators -->
|
||||
<?cs call:setting("9") ?><?cs
|
||||
if:((Data.List.Settings.8.state == 1) && (Data.List.Settings.9.state == 1))
|
||||
?>(<?cs var:html_escape(Lang.Misc.ModSubOverridesRemote) ?>)<?cs /if ?>
|
||||
<?cs /if ?>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- configure archive access -->
|
||||
<?cs call:selection_list("archive") ?>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- block unknown users from archive -->
|
||||
<?cs call:checkbox("g") ?>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- enable archiving -->
|
||||
<?cs call:checkbox("a") ?>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- only moderators may access the archive -->
|
||||
<?cs call:checkbox("b") ?>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- remove 'no-archive' header -->
|
||||
<?cs call:checkbox("i") ?>
|
3
ezmlm-web-3.3.1/template/config_options/block_deny.cs
Normal file
3
ezmlm-web-3.3.1/template/config_options/block_deny.cs
Normal file
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- use deny list -->
|
||||
<?cs call:checkbox("k") ?>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- only moderators may post -->
|
||||
<?cs call:checkbox("o") ?>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- block unknown users from archive -->
|
||||
<?cs call:checkbox("g") ?>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- only subscribers may post -->
|
||||
<?cs call:checkbox("u") ?>
|
|
@ -0,0 +1,9 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- charset -->
|
||||
<?cs if:Config.Features.CharsetSelect ?>
|
||||
<?cs if:Data.List.CharSet ?>
|
||||
<label for="list_charset"><?cs var:html_escape(Lang.Misc.ListCharset)
|
||||
?>:</label>
|
||||
<input type="text" name="list_charset" id="list_charset" size="30"
|
||||
value="<?cs var:Data.List.CharSet ?>" /><?cs /if ?>
|
||||
<?cs /if ?>
|
3
ezmlm-web-3.3.1/template/config_options/confirm_post.cs
Normal file
3
ezmlm-web-3.3.1/template/config_options/confirm_post.cs
Normal file
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- require confirmation from poster -->
|
||||
<?cs call:checkbox("y") ?>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- configure confirmation requirements -->
|
||||
<?cs call:selection_checkboxes("confirmation") ?>
|
3
ezmlm-web-3.3.1/template/config_options/confirm_sub.cs
Normal file
3
ezmlm-web-3.3.1/template/config_options/confirm_sub.cs
Normal file
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- do not require confirmation for subscription -->
|
||||
<?cs call:checkbox("h") ?>
|
3
ezmlm-web-3.3.1/template/config_options/confirm_unsub.cs
Normal file
3
ezmlm-web-3.3.1/template/config_options/confirm_unsub.cs
Normal file
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- do not require confirmation for unsubscribe -->
|
||||
<?cs call:checkbox("j") ?>
|
13
ezmlm-web-3.3.1/template/config_options/copylines.cs
Normal file
13
ezmlm-web-3.3.1/template/config_options/copylines.cs
Normal file
|
@ -0,0 +1,13 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- 'copylines' setting -->
|
||||
<?cs if:Config.Features.CopyLines ?>
|
||||
<input type="checkbox" name="copylines_enabled"
|
||||
value="selected" id="copylines_enabled" <?cs
|
||||
if:Data.List.CopyLines>0 ?>checked="checked"<?cs /if ?> />
|
||||
<label for="copylines_enabled"><?cs
|
||||
var:html_escape(Lang.Misc.CopyLinesEnabled) ?></label>
|
||||
<ul><li><input type="text" name="copylines" size="10"
|
||||
style="text-align:right" value="<?cs
|
||||
alt:Data.List.CopyLines ?>0<?cs /alt ?>" /> <?cs
|
||||
var:html_escape(Lang.Misc.CopyLinesNumber) ?></li></ul>
|
||||
<?cs /if ?>
|
|
@ -0,0 +1,5 @@
|
|||
<label for="listaddress"><?cs var:html_escape(Lang.Misc.ListAddress) ?>:</label>
|
||||
<input type="text" id="listaddress" name="inlocal" size="20"
|
||||
value="<?cs var:html_escape(Data.LocalPrefix)
|
||||
?>"> @ <input type="text" name="inhost" size="30" value="<?cs
|
||||
var:html_escape(Data.HostName) ?>"></li>
|
|
@ -0,0 +1,2 @@
|
|||
<label for="listname"><?cs var:html_escape(Lang.Misc.ListName) ?>:</label>
|
||||
<input type="text" name="new_list" id="listname" size="25">
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- turn on digest list -->
|
||||
<?cs call:checkbox("d") ?>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- digest settings -->
|
||||
<?cs call:setting("4") ?>
|
3
ezmlm-web-3.3.1/template/config_options/from_address.cs
Normal file
3
ezmlm-web-3.3.1/template/config_options/from_address.cs
Normal file
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- from address -->
|
||||
<?cs call:setting("3") ?>
|
|
@ -0,0 +1,8 @@
|
|||
<?cs if:Data.List.Features.GpgKeyRing ?>
|
||||
<!-- comment for the key (second part of the human readable key description) -->
|
||||
|
||||
<label for="gnupg_keycomment"><?cs var:html_escape(Lang.Misc.GnupgKeyComment) ?>:</label>
|
||||
<input type="text" name="gnupg_keycomment" id="gnupg_keycomment" size="25"
|
||||
value="Mailing list" />
|
||||
<?cs /if ?>
|
||||
|
15
ezmlm-web-3.3.1/template/config_options/gnupg_keyexpires.cs
Normal file
15
ezmlm-web-3.3.1/template/config_options/gnupg_keyexpires.cs
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?cs if:Data.List.Features.GpgKeyRing ?>
|
||||
<!-- expiration of the key (in years) -->
|
||||
|
||||
<label for="gnupg_keyexpires"><?cs var:html_escape(Lang.Misc.GnupgKeyExpires) ?>:</label>
|
||||
<select name="gnupg_keyexpires" id="gnupg_keyexpires" size="0">
|
||||
<option value="0" selected="selected"><?cs
|
||||
var:html_escape(Lang.Misc.Never) ?></option>
|
||||
<option value="1y">1</option>
|
||||
<option value="2y">2</option>
|
||||
<option value="3y">3</option>
|
||||
<option value="5y">5</option>
|
||||
<option value="10y">10</option>
|
||||
</select>
|
||||
<?cs /if ?>
|
||||
|
8
ezmlm-web-3.3.1/template/config_options/gnupg_keyname.cs
Normal file
8
ezmlm-web-3.3.1/template/config_options/gnupg_keyname.cs
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?cs if:Data.List.Features.GpgKeyRing ?>
|
||||
<!-- name of the key (first part of the human readable key description) -->
|
||||
|
||||
<label for="gnupg_keyname"><?cs var:html_escape(Lang.Misc.GnupgKeyName) ?>:</label>
|
||||
<input type="text" name="gnupg_keyname" id="gnupg_keyname" size="25"
|
||||
value="<?cs var:html_escape(Data.List.Name) ?>" />
|
||||
<?cs /if ?>
|
||||
|
11
ezmlm-web-3.3.1/template/config_options/gnupg_keysize.cs
Normal file
11
ezmlm-web-3.3.1/template/config_options/gnupg_keysize.cs
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?cs if:Data.List.Features.GpgKeyRing ?>
|
||||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- length of the key (bytes) -->
|
||||
<label for="gnupg_keysize"><?cs var:html_escape(Lang.Misc.GnupgKeySize) ?>:</label>
|
||||
<select name="gnupg_keysize" size="1" id="gnupg_keysize">
|
||||
<option>1024</option>
|
||||
<option selected="selected">2048</option>
|
||||
<option>4096</option>
|
||||
</select>
|
||||
<?cs /if ?>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?cs if:Data.List.Features.GpgEzmlm ?>
|
||||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- Gnupg: sign outgoing messages -->
|
||||
<?cs call:checkbox("gpgezmlm_allowkeysubmission") ?>
|
||||
<?cs /if ?>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?cs if:Data.List.Features.GpgEzmlm ?>
|
||||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- Gnupg: sign outgoing messages -->
|
||||
<?cs call:checkbox("gpgezmlm_encrypttoall") ?>
|
||||
<?cs /if ?>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?cs if:Data.List.Features.GpgEzmlm ?>
|
||||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- Gnupg: send warning without original content if no key is available -->
|
||||
<?cs call:checkbox("gpgezmlm_nokeynocrypt") ?>
|
||||
<?cs /if ?>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?cs if:Data.List.Features.GpgEzmlm ?>
|
||||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- Gnupg: sign outgoing messages -->
|
||||
<?cs call:checkbox("gpgezmlm_requiresigs") ?>
|
||||
<?cs /if ?>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?cs if:Data.List.Features.GpgEzmlm ?>
|
||||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- Gnupg: sign outgoing messages -->
|
||||
<?cs call:checkbox("gpgezmlm_signmessages") ?>
|
||||
<?cs /if ?>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?cs if:Data.List.Features.GpgEzmlm ?>
|
||||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- Gnupg: sign outgoing messages -->
|
||||
<?cs call:checkbox("gpgezmlm_verifiedkeyreq") ?>
|
||||
<?cs /if ?>
|
||||
|
5
ezmlm-web-3.3.1/template/config_options/headeradd.cs
Normal file
5
ezmlm-web-3.3.1/template/config_options/headeradd.cs
Normal file
|
@ -0,0 +1,5 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- headeradd -->
|
||||
<?cs var:html_escape(Lang.Misc.HeaderAdd) ?>:<br/>
|
||||
<ul><li><textarea name="headeradd" rows="5" cols="60"><?cs
|
||||
var:html_escape(Data.List.HeaderAdd) ?></textarea></li></ul>
|
31
ezmlm-web-3.3.1/template/config_options/headerfilter.cs
Normal file
31
ezmlm-web-3.3.1/template/config_options/headerfilter.cs
Normal file
|
@ -0,0 +1,31 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- headerfilter -->
|
||||
<?cs if:Config.Features.KeepFiles ?>
|
||||
<?cs var:html_escape(Lang.Misc.HeaderFiltering) ?>:
|
||||
<ul>
|
||||
<li><input type="radio" name="headerfilter_action" value="remove"
|
||||
id="hf_remove"<?cs if:Data.List.HeaderRemove
|
||||
?> checked="checked"<?cs /if ?> /><label for="hf_remove"><?cs
|
||||
var:html_escape(Lang.Misc.HeaderRemove) ?></label></li>
|
||||
<li><input type="radio" name="headerfilter_action" value="keep"
|
||||
id="hf_keep"<?cs if:Data.List.HeaderKeep
|
||||
?> checked="checked"<?cs /if ?> /><label for="hf_keep"><?cs
|
||||
var:html_escape(Lang.Misc.HeaderKeep) ?></label></li>
|
||||
<li>
|
||||
<textarea name="headerfilter" rows="5" cols="60"><?cs
|
||||
if Data.List.HeaderRemove ?><?cs
|
||||
var:html_escape(Data.List.HeaderRemove) ?><?cs else ?><?cs
|
||||
var:html_escape(Data.List.HeaderKeep) ?><?cs /if ?></textarea></li>
|
||||
</ul>
|
||||
<?cs else ?>
|
||||
<?cs var:html_escape(Lang.Misc.HeaderFiltering) ?>:
|
||||
<?cs var:html_escape(Lang.Misc.HeaderRemove) ?>
|
||||
<input type="hidden" name="headerfilter_action" value="remove" />
|
||||
<ul>
|
||||
<li>
|
||||
<textarea name="headerfilter" rows="5" cols="60"><?cs
|
||||
if Data.List.HeaderRemove ?><?cs
|
||||
var:html_escape(Data.List.HeaderRemove) ?><?cs else ?><?cs
|
||||
var:html_escape(Data.List.HeaderKeep) ?><?cs /if ?></textarea></li>
|
||||
</ul>
|
||||
<?cs /if ?>
|
25
ezmlm-web-3.3.1/template/config_options/lang_select.cs
Normal file
25
ezmlm-web-3.3.1/template/config_options/lang_select.cs
Normal file
|
@ -0,0 +1,25 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- list language -->
|
||||
<?cs if:Config.Features.LanguageSelect ?>
|
||||
<?cs if:Data.Action != "list_create" ?>
|
||||
<?cs if:subcount(Data.List.AvailableLanguages) > 0 ?>
|
||||
<label for="list_language"><?cs var:html_escape(Lang.Misc.ListLanguage)
|
||||
?>:</label>
|
||||
<select name="list_language" id="list_language">
|
||||
<?cs each:item = Data.List.AvailableLanguages ?>
|
||||
<option <?cs if:(item == Data.List.Language)
|
||||
?>selected="selected"<?cs /if ?>><?cs var:item
|
||||
?></option><?cs /each ?>
|
||||
</select><?cs /if ?>
|
||||
<?cs else ?>
|
||||
<?cs if:subcount(Data.AvailableLanguages) > 0 ?>
|
||||
<label for="list_language"><?cs var:html_escape(Lang.Misc.ListLanguage)
|
||||
?>:</label>
|
||||
<select name="list_language" id="list_language">
|
||||
<?cs each:item = Data.AvailableLanguages ?>
|
||||
<option <?cs if:item == "default"
|
||||
?>selected="selected"<?cs /if ?>><?cs var:item
|
||||
?></option><?cs /each ?>
|
||||
</select><?cs /if ?>
|
||||
<?cs /if ?>
|
||||
<?cs /if ?>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- process mailman-style requests -->
|
||||
<?cs call:checkbox("q") ?>
|
3
ezmlm-web-3.3.1/template/config_options/mainlist.cs
Normal file
3
ezmlm-web-3.3.1/template/config_options/mainlist.cs
Normal file
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- set main list name -->
|
||||
<?cs call:setting("0") ?>
|
35
ezmlm-web-3.3.1/template/config_options/mimefilter.cs
Normal file
35
ezmlm-web-3.3.1/template/config_options/mimefilter.cs
Normal file
|
@ -0,0 +1,35 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<?cs if:Config.Features.KeepFiles ?>
|
||||
<?cs var:html_escape(Lang.Misc.MimeFiltering) ?>:
|
||||
<ul>
|
||||
<li><input type="radio" name="mimefilter_action" value="remove"
|
||||
id="mf_remove"<?cs if:Data.List.MimeRemove
|
||||
?> checked="checked"<?cs /if ?> /><label for="mf_remove"><?cs
|
||||
var:html_escape(Lang.Misc.MimeRemove) ?></label></li>
|
||||
<li><input type="radio" name="mimefilter_action" value="keep"
|
||||
id="mf_keep"<?cs if:Data.List.MimeKeep
|
||||
?> checked="checked"<?cs /if ?> /><label for="mf_keep"><?cs
|
||||
var:html_escape(Lang.Misc.MimeKeep) ?></label></li>
|
||||
<li>
|
||||
<textarea name="mimefilter" rows="5" cols="60"><?cs
|
||||
if Data.List.MimeRemove ?><?cs var:html_escape(Data.List.MimeRemove)
|
||||
?><?cs else ?><?cs var:html_escape(Data.List.MimeKeep)
|
||||
?><?cs /if ?></textarea></li>
|
||||
<li>(<a href="<?cs call:link('action','show_mime_examples','','','','')
|
||||
?>" target="_blank"><?cs var:html_escape(Lang.Misc.MimeTypeExamples)
|
||||
?></a>)</li>
|
||||
</ul>
|
||||
<?cs else ?>
|
||||
<?cs var:html_escape(Lang.Misc.MimeFiltering) ?>:
|
||||
<?cs var:html_escape(Lang.Misc.MimeRemove) ?>
|
||||
<input type="hidden" name="mimefilter_action" value="remove" />
|
||||
<ul><li>
|
||||
<textarea name="mimefilter" rows="5" cols="60"><?cs
|
||||
if Data.List.MimeRemove ?><?cs var:html_escape(Data.List.MimeRemove)
|
||||
?><?cs else ?><?cs var:html_escape(Data.List.MimeKeep)
|
||||
?><?cs /if ?></textarea></li>
|
||||
</ul>
|
||||
<?cs /if ?>
|
||||
<?cs # uncomment the following to enable the 'reset' feature
|
||||
but that would mess up the interface, right? ?>
|
||||
<?cs # call:checkbox("x") ?>
|
7
ezmlm-web-3.3.1/template/config_options/mimereject.cs
Normal file
7
ezmlm-web-3.3.1/template/config_options/mimereject.cs
Normal file
|
@ -0,0 +1,7 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<?cs var:html_escape(Lang.Misc.MimeReject) ?>:
|
||||
<ul>
|
||||
<li><textarea name="mimereject" rows="4" cols="60"><?cs
|
||||
var:html_escape(Data.List.MimeReject) ?></textarea>
|
||||
</li>
|
||||
</ul>
|
3
ezmlm-web-3.3.1/template/config_options/mod_post.cs
Normal file
3
ezmlm-web-3.3.1/template/config_options/mod_post.cs
Normal file
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- posted messages are moderated -->
|
||||
<?cs call:checkbox("m") ?>
|
5
ezmlm-web-3.3.1/template/config_options/mod_post_path.cs
Normal file
5
ezmlm-web-3.3.1/template/config_options/mod_post_path.cs
Normal file
|
@ -0,0 +1,5 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<?cs if:Data.List.Options.m ?>
|
||||
<!-- messsage moderator path -->
|
||||
<?cs call:setting("7") ?>
|
||||
<?cs /if ?>
|
3
ezmlm-web-3.3.1/template/config_options/mod_sub.cs
Normal file
3
ezmlm-web-3.3.1/template/config_options/mod_sub.cs
Normal file
|
@ -0,0 +1,3 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<!-- moderate subscription -->
|
||||
<?cs call:checkbox("s") ?>
|
5
ezmlm-web-3.3.1/template/config_options/mod_sub_path.cs
Normal file
5
ezmlm-web-3.3.1/template/config_options/mod_sub_path.cs
Normal file
|
@ -0,0 +1,5 @@
|
|||
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
|
||||
<?cs if:Data.List.Options.s ?>
|
||||
<!-- custom path to subscription moderators -->
|
||||
<?cs call:setting("8") ?>
|
||||
<?cs /if ?>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue