subversion layout restructured
This commit is contained in:
commit
32feb3b926
13 changed files with 2479 additions and 0 deletions
99
CHANGES
Normal file
99
CHANGES
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
$Id: CHANGES,v 1.2 2000/09/25 17:54:06 guy Exp $
|
||||||
|
|
||||||
|
REVISION HISTORY - ezmlm-web.cgi
|
||||||
|
================================
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Version 0.2 - 13/04/98 (Not Released)
|
||||||
|
* Allow list creation
|
||||||
|
* Allowed users to edit moderators
|
||||||
|
|
||||||
|
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.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.5 - 12/05/98 (Not Released)
|
||||||
|
* More bug fixes. Mainly for mathew@graham.
|
||||||
|
|
||||||
|
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 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.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.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 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 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.2 - 26/01/02005
|
||||||
|
* 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.3 - ??/04/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
|
97
INSTALL
Normal file
97
INSTALL
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
The following notes will guide you through the installation of ezmlm-web:
|
||||||
|
|
||||||
|
0. IMPORTANT: you need the perl module Mail::Ezmlm and others to use
|
||||||
|
ezmlm-web! The file README contains the list of necessary modules.
|
||||||
|
|
||||||
|
1. Get ezmlm-web and extract the archive:
|
||||||
|
tar xzf ezmlm-web-2.2.tar.gz
|
||||||
|
|
||||||
|
2. Copy ezmlm-web.cgi to some publically readable directory. It does not
|
||||||
|
have to be in a path accessible to your web server, but any user with a
|
||||||
|
mailing list must be able to run it (Check the read and execute rights
|
||||||
|
on both the file and directory). We put our copy in "/usr/local/bin".
|
||||||
|
|
||||||
|
At the top of ezmlm-web.gi you can will probably have to change the
|
||||||
|
$ENV{'PATH'} variable. Be careful about what you set as the path. Too
|
||||||
|
much is a security risk and too little will cause the script to
|
||||||
|
malfunction. Version 2.0 requires that the following programs be
|
||||||
|
accessible in your path: mv, rm
|
||||||
|
|
||||||
|
3. Edit the ezmlmwebrc 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 and the "lang" directory to one of
|
||||||
|
the following places:
|
||||||
|
- /etc/ezmlm
|
||||||
|
- the home directory of the user that runs ezmlm-web.cgi
|
||||||
|
- the directory, that contains your ezmlm-web.cgi file
|
||||||
|
|
||||||
|
4. Edit the index.c file and change the path to the path of your copy
|
||||||
|
of ezmlm-web.cgi. Then compile this file. You can do this by issuing
|
||||||
|
the command; gcc -o index.cgi index.c
|
||||||
|
|
||||||
|
5. For every user/virtual host that needs to manage mailing lists, you
|
||||||
|
need to create a SUID (user not root!!) copy of index.cgi (see
|
||||||
|
chmod(1) for details). These need to reside somewhere accessible by
|
||||||
|
the web server. I suggest that you put them in a sub directory (see
|
||||||
|
about security) of each user/virtual host's home directory (eg
|
||||||
|
/home/luser/public_html/ezmlm for Apache on Redhat).
|
||||||
|
|
||||||
|
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 (see the
|
||||||
|
srm.conf file in Apache). 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, access.conf for Apache).
|
||||||
|
|
||||||
|
6. 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)
|
||||||
|
|
||||||
|
6.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)
|
||||||
|
|
||||||
|
6.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.
|
||||||
|
|
||||||
|
6.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
|
||||||
|
|
||||||
|
Again, see the ApacheWeek article for details.
|
||||||
|
|
||||||
|
7. Test the installation through the web. You should be asked for a
|
||||||
|
username and password (supplied in 6.2) and then be presented with a
|
||||||
|
screen entitled EZ Mailing List Manger. You can then try to create and
|
||||||
|
edit mailing lists ... Have Fun :)
|
||||||
|
|
||||||
|
If you have any problems, then you can:
|
||||||
|
- take a look at https://systemausfall.org/toolforge/ezmlm-web
|
||||||
|
- send me an email: ezmlm-web@sumpfralle.de
|
270
README
Normal file
270
README
Normal file
|
@ -0,0 +1,270 @@
|
||||||
|
$Id: README,v 1.2 2000/09/25 17:57:21 guy Exp $
|
||||||
|
|
||||||
|
=================
|
||||||
|
| ezmlm-web-2.2 |
|
||||||
|
=================
|
||||||
|
|
||||||
|
If you only want to know how to install ezmlm-web, then you should
|
||||||
|
read INSTALL.
|
||||||
|
|
||||||
|
Contents
|
||||||
|
========
|
||||||
|
I. Copyright Stuff
|
||||||
|
II. Some Background
|
||||||
|
III. Requirements
|
||||||
|
IV. Files
|
||||||
|
V. Notes
|
||||||
|
VI. Multi-level list access
|
||||||
|
VII. Language Portability
|
||||||
|
VIII. Bugs && Bug Reports
|
||||||
|
XI. Acknowledgements
|
||||||
|
X. Availability
|
||||||
|
|
||||||
|
|
||||||
|
I. Copyright Stuff - essentially the FreeBSD licence ...
|
||||||
|
==================
|
||||||
|
ezmlm-web - version 2.2 - 26/01/02005
|
||||||
|
|
||||||
|
Copyright (C) 1998, Guy Antony Halse, All Rights Reserved.
|
||||||
|
Please send bug reports and comments to guy-ezmlm@rucus.ru.ac.za
|
||||||
|
|
||||||
|
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. Some Background
|
||||||
|
===================
|
||||||
|
The need for ezmlm-web arose from the fact that we host many student
|
||||||
|
societies on our system. These societies usually have a virtual host for web
|
||||||
|
and email, which is administered by a computer rep from the society. These
|
||||||
|
computer reps often have little or no knowledge of Unix and so we needed a
|
||||||
|
user friendly system that would let the create and maintain mailing lists
|
||||||
|
(such as members@foo.soc.ru.ac.za, committee@foo.soc.ru.ac.za, etc).
|
||||||
|
|
||||||
|
Since I am never keen to re-invent the wheel, I had a look at Steve Peterson's
|
||||||
|
script (http://virtation.com/qmail/ml-sub), which allows people to subscribe
|
||||||
|
and unsubscribe from mailing lists using a form->email gateway. This is fine
|
||||||
|
for putting on a web page saying "here come and join our mailing list", but
|
||||||
|
doesn't really allow you to administrate a list.
|
||||||
|
|
||||||
|
Security of mailing lists was a concern, as we really didn't want
|
||||||
|
unauthorised people to be able to alter some users list. Ezmlm-web itself
|
||||||
|
implements no security checks (apart from un-tainting input) and so relies
|
||||||
|
on the web server to do this (re-inventing the wheel again :). We use an
|
||||||
|
Apache webserver, so one can control access to a directory using a .htaccess
|
||||||
|
file or in the access.conf file. ApacheWeek have a good article on doing
|
||||||
|
this at http://www.apacheweek.com/features/userauth. I also give examples
|
||||||
|
later in this document.
|
||||||
|
|
||||||
|
This version of ezmlm-web is based to a large extent on previous
|
||||||
|
versions that I have developed. It has however been totally re-written to
|
||||||
|
make use of the Mail::Ezmlm perl module I wrote. At the same time it was
|
||||||
|
updated and extended to include the new features of ezmlm-idx. It includes
|
||||||
|
many new features that have been suggested to me over the last few months,
|
||||||
|
and hopefully is now useful to a much larger group of people.
|
||||||
|
|
||||||
|
Since 02005 ezmlm-web is maintained by Lars Kruse (ezmlm-web@sumpfralle.de).
|
||||||
|
Only minor improvements had to be implemented to keep the already fully
|
||||||
|
functional ezmlm-web up to date.
|
||||||
|
|
||||||
|
III. Requirements
|
||||||
|
=================
|
||||||
|
This version of ezmlm-web requires the following;
|
||||||
|
|
||||||
|
* qmail v1.03
|
||||||
|
* ezmlm v0.53 (idx v0.40)
|
||||||
|
* Perl v5.004 and the following modules;
|
||||||
|
+ Mail::Ezmlm v0.03
|
||||||
|
+ Mail::Address v1.15
|
||||||
|
+ CGI v2.6
|
||||||
|
+ CGI::Carp v1.06
|
||||||
|
+ DB_File v1.65
|
||||||
|
+ Getopt::Std v4.1
|
||||||
|
+ File::Find v?
|
||||||
|
+ File::Copy v2.02
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
IV. Files
|
||||||
|
=========
|
||||||
|
In this distribution you should find 8 files;
|
||||||
|
|
||||||
|
README This file. Provides some background information.
|
||||||
|
Not needed to run ezmlm-web.
|
||||||
|
|
||||||
|
INSTALL Notes on installation. Not needed to run ezmlm-web.
|
||||||
|
|
||||||
|
CHANGES The change history. Not needed to run ezmlm-web
|
||||||
|
|
||||||
|
TODO This file is a list of things I intend doing in future
|
||||||
|
versions of ezmlm-web. Not needed to run ezmlm-web.
|
||||||
|
|
||||||
|
ezmlm-web.cgi The ezmlm-web script proper. This program requires that
|
||||||
|
you have perl5 installed on your machine and that your web
|
||||||
|
server is capable of running CGI scripts.
|
||||||
|
|
||||||
|
index.c A C wrapper to allow ezmlm-web.cgi to run suid. Not
|
||||||
|
strictly necessary if your setup allows perl scripts to
|
||||||
|
run suid, but I prefer using wrappers anyway. It needs to
|
||||||
|
be edited and compiled to suit your system. Not needed to
|
||||||
|
run ezmlm-web.
|
||||||
|
|
||||||
|
ezmlmwebrc This is the configuration file for ezmlm-web. All options
|
||||||
|
are explained in this example file. You will need this
|
||||||
|
file to run ezmlm-web.
|
||||||
|
|
||||||
|
htaccess.sample A sample Apache .htaccess file for controlling access to
|
||||||
|
the mailing lists. If you use another web server, you will
|
||||||
|
have to work this bit out for yourself.
|
||||||
|
|
||||||
|
webusers.sample A sample webusers file for multi-level access control.
|
||||||
|
|
||||||
|
The directory "lang" contains the language files. You will need at least the
|
||||||
|
one, that you have choosen in "ezmlmwebrc" by the option "HTML_LANGUAGE".
|
||||||
|
|
||||||
|
V. Notes
|
||||||
|
=========
|
||||||
|
* There is a function to delete mailing lists, but I really don't like the
|
||||||
|
idea. The only reason I put it in is that bvi@rucus asked for it.
|
||||||
|
If you set $UNSAFE_RD = 0 (the default) in the config section, the
|
||||||
|
ezmlm-web won't actually delete the list. In this case it moves the <list>
|
||||||
|
to .<list> and all the associated .qmail files to a sub-directory called
|
||||||
|
deleted.qmail/ (In the users home directory. This is by far a safer way
|
||||||
|
(since you can restore lists) and therefore I recommend it.
|
||||||
|
|
||||||
|
* The HTML interface has been tested using Nutscrape, Internet Exploder, and
|
||||||
|
Lynx. If anyone uses anything else and has problems, please let me know.
|
||||||
|
|
||||||
|
* I suggest that you make use of custom ezmlmwebrc files rather than using
|
||||||
|
the -d command line switches - it makes fault diagnosis easier ...
|
||||||
|
|
||||||
|
* Please see the section on languages below.
|
||||||
|
|
||||||
|
VI. 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 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. As of yet there is no way to create users
|
||||||
|
through the web interface, but I intend to do this eventually.
|
||||||
|
|
||||||
|
The format of a webusers file is as follows;
|
||||||
|
|
||||||
|
list1: user1, user2, user3
|
||||||
|
ALL: user1, user2
|
||||||
|
list2: ALL
|
||||||
|
|
||||||
|
ie; listname colon (:) and a comma (,) separated list of users. Spaces are
|
||||||
|
ignored but each list must appear on a new line.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
VII. Language Portablity
|
||||||
|
=========================
|
||||||
|
One of the great new features of version 2.0 is that it is essentially
|
||||||
|
language independant (okay, not quite, but is 99% of the way there). Most of
|
||||||
|
the fixed strings, help, etc is defined in the files of lang directory.
|
||||||
|
Of course you can change them or create a new translation.
|
||||||
|
|
||||||
|
The language can be selected in ezmlmwebrc with the "HTML_LANGUAGE" option.
|
||||||
|
|
||||||
|
If anyone gets round to writing full templates for languages I would
|
||||||
|
appreciate it if you would do two things;
|
||||||
|
|
||||||
|
Firstly, make them public and announce them on the ezmlm@lists.cr.yp.to
|
||||||
|
mailing list so that others may benefit.
|
||||||
|
|
||||||
|
Secondly, please mail me a copy (ezmlm-web@sumpfralle.de) so that I may use
|
||||||
|
them in any future releases of ezmlm-web.
|
||||||
|
|
||||||
|
|
||||||
|
VIII. Bugs && Bug Reports
|
||||||
|
=======================
|
||||||
|
I don't know of any bugs, but then this is a rewrite and a first release. It
|
||||||
|
has been tested reasonably well, but not exhaustively. I know it works on
|
||||||
|
FreeBSD 4.0-STABLE, FreeBSD 3.4-RELEASE, RedHat 5.1 and Redhat 6.0 all using
|
||||||
|
an Apache web server, but I would be interested to know whether it works on
|
||||||
|
other OSs and with other web servers. This version is far less dependent on
|
||||||
|
the OS than previous versions so I don't see any reason why it shouldn't.
|
||||||
|
|
||||||
|
Please mail bug reports and comments to ezmlm-web@sumpfralle.de.
|
||||||
|
|
||||||
|
IX. Acknowledgements
|
||||||
|
===================
|
||||||
|
* Guy Antony Halse (guy-ezmlm@rucus.ru.ac.za) - He created ezmlm-web,
|
||||||
|
maintained it till 02005 and wrote nearly every line of code!
|
||||||
|
* Keith Burdis (keith@rucus.ru.ac.za) - For constantly bugging me 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
|
||||||
|
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 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.
|
||||||
|
|
||||||
|
X. Availability
|
||||||
|
=================
|
||||||
|
More information on ezmlm-web and developments to ezmlm-web can be found at:
|
||||||
|
https://systemausfall.org/toolforge/ezmlm-web
|
||||||
|
|
||||||
|
The website of Guy Antony Halse (the 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/
|
28
TODO
Normal file
28
TODO
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
$Id: TODO,v 1.3 2000/09/25 19:58:02 guy Exp $
|
||||||
|
|
||||||
|
TODO - ezmlm-web 2.3
|
||||||
|
|
||||||
|
DOKU:
|
||||||
|
- mention in INSTALL, that a missing webusers-file deactivates access control
|
||||||
|
- more documentation
|
||||||
|
- webusers is not mentioned in INSTALL
|
||||||
|
|
||||||
|
ORG:
|
||||||
|
- change ./lang/ to /usr/local/share/ezmlm-web/lang
|
||||||
|
- move unknown.gif to systemausfall.org
|
||||||
|
- some nice install method
|
||||||
|
- easy-mode? - maybe with typical profiles - or: separation basic / expert
|
||||||
|
|
||||||
|
CODE:
|
||||||
|
- check and improve DEFAULT_HOST
|
||||||
|
- check virtual user testing
|
||||||
|
- implement ldap authorisation
|
||||||
|
- check: the textfields for paths are filled with the first set value
|
||||||
|
- line 472 - replace "return" by "if"-construct
|
||||||
|
- check: safe removal of list (.qmail-* are left and dir is renamed to .dir)
|
||||||
|
|
||||||
|
LAYOUT:
|
||||||
|
- option for a css-stylesheet
|
||||||
|
- migrate header and footer in ezmlmwebrc to css
|
||||||
|
- improve css-design
|
||||||
|
- "prefix"-option should be next to its text field (as with all paths)
|
39
UPGRADING
Normal file
39
UPGRADING
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
$Id: UPGRADING,v 1.1 2000/09/25 19:24:20 guy Exp $
|
||||||
|
|
||||||
|
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.
|
202
css/default.css
Normal file
202
css/default.css
Normal file
|
@ -0,0 +1,202 @@
|
||||||
|
body {
|
||||||
|
background-color: #000080;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #3333ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:visited {
|
||||||
|
color: #8888ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*********************** general **************************
|
||||||
|
|
||||||
|
used classes for containers:
|
||||||
|
title - heading of most pages (except main)
|
||||||
|
list - list of subscribers/mailinglists/moderators/...
|
||||||
|
add_remove - buttons and fields to manipulate such lists
|
||||||
|
info - explanations
|
||||||
|
question - buttons to answer a question
|
||||||
|
options - various possibilities (buttons)
|
||||||
|
input - group of form fields
|
||||||
|
container - includes all other containers on a page
|
||||||
|
|
||||||
|
low-level classes (for "span"):
|
||||||
|
button
|
||||||
|
formfield
|
||||||
|
checkbox
|
||||||
|
help
|
||||||
|
|
||||||
|
and a special div:
|
||||||
|
error
|
||||||
|
|
||||||
|
************************************************************/
|
||||||
|
|
||||||
|
div.container {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.add_remove span.button {
|
||||||
|
width: auto;
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.add_remove span.formfield {
|
||||||
|
width: auto;
|
||||||
|
margin: 0px;
|
||||||
|
margin-right: auto;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.add_remove span.formfield:before {
|
||||||
|
content: attr("<br>");
|
||||||
|
}
|
||||||
|
|
||||||
|
div.list {
|
||||||
|
margin: 1%;
|
||||||
|
margin-right: 3%;
|
||||||
|
text-align: center;
|
||||||
|
float: left;
|
||||||
|
margin-bottom: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.question {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.warning {
|
||||||
|
text-decoration: blink;
|
||||||
|
color: #ff0000;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.help {
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.button {
|
||||||
|
margin-left: 3px;
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.formfield {
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/************************ main page ***********************
|
||||||
|
name of container: main
|
||||||
|
available classes: list info add_remove
|
||||||
|
**********************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************* confirm delete page *******************
|
||||||
|
name of container: delete
|
||||||
|
available classes: title button
|
||||||
|
***********************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/************************* edit page ***********************
|
||||||
|
name of container: edit
|
||||||
|
availbale classes: title list add_remove options
|
||||||
|
***********************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/********* allow/deny/moderators/digests page **************
|
||||||
|
name of container: parts
|
||||||
|
available classes: title info list add_remove
|
||||||
|
***********************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************* create list page **********************
|
||||||
|
name of container: create
|
||||||
|
available classes: title input question
|
||||||
|
***********************************************************/
|
||||||
|
|
||||||
|
#create div.input span.formfield {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: large;
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/********************* config page *************************
|
||||||
|
name of container: config
|
||||||
|
available classes: title info input question
|
||||||
|
***********************************************************/
|
||||||
|
|
||||||
|
#config div.info {
|
||||||
|
font-size: large;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#config div.input span.formfield {
|
||||||
|
font-weight: bold;
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/******************** textfiles ****************************
|
||||||
|
name of container: textfiles
|
||||||
|
available classes: list info question
|
||||||
|
***********************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************** edittext *****************************
|
||||||
|
name of container: edittext
|
||||||
|
available classes: title input info question
|
||||||
|
***********************************************************/
|
||||||
|
|
||||||
|
#edittext div.input {
|
||||||
|
float:left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**************** error messages **************************/
|
||||||
|
|
||||||
|
div.error {
|
||||||
|
width: 99%;
|
||||||
|
padding: 5px;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #e0e0ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.error h2 {
|
||||||
|
color: #ff0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.error p.msg {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
1251
ezmlm-web.cgi
Executable file
1251
ezmlm-web.cgi
Executable file
File diff suppressed because it is too large
Load diff
80
ezmlmwebrc
Normal file
80
ezmlmwebrc
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
# $Id: ezmlmwebrc,v 1.5 2000/09/25 18:25:26 guy Exp $
|
||||||
|
# Configuration file for ezmlm-web 2.2
|
||||||
|
# ===========================================================================
|
||||||
|
|
||||||
|
# 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 ;-)
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Where do we store lists on this server ... Try "$HOME_DIR/lists".
|
||||||
|
# This directory will automatically be created if needed.
|
||||||
|
$LIST_DIR = "$HOME_DIR/lists";
|
||||||
|
|
||||||
|
# Where is the webusers file for access-permissions
|
||||||
|
# defaults to "$LIST_DIR/webusers"
|
||||||
|
$WEBUSERS_FILE = "$LIST_DIR/webusers";
|
||||||
|
|
||||||
|
# Safe list deletion?
|
||||||
|
# 0 = move list to .list and the .qmails to deleted.qmail/. Recoverable :)
|
||||||
|
# 1 = allow user to delete list completely. No backup, therefore no recovery.
|
||||||
|
$UNSAFE_RM = 0;
|
||||||
|
|
||||||
|
# Who is the alias user on this system (usually alias ;)
|
||||||
|
$ALIAS_USER = 'alias';
|
||||||
|
|
||||||
|
# Where do the qmail control files live on this system ...
|
||||||
|
$QMAIL_BASE = $Mail::Ezmlm::QMAIL_BASE . '/control';
|
||||||
|
|
||||||
|
# The url to our web interface - so we can use ezmlm-cgi if necessary
|
||||||
|
$EZMLM_CGI_URL = 'http://some.server.that.has/cgi-bin/ezmlm-cgi';
|
||||||
|
|
||||||
|
# Where our ezcgirc file lives (probably /etc/ezmlm/ezcgirc)
|
||||||
|
$EZMLM_CGI_RC = '/etc/ezmlm/ezcgirc';
|
||||||
|
|
||||||
|
# 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';
|
||||||
|
|
||||||
|
# Where do we find the nice little help icon - by default HELP_ICON_URL
|
||||||
|
# points to resources on http://rucus.ru.ac.za/. This will work, but we
|
||||||
|
# would appreciate it if you changed this to a local site.
|
||||||
|
$HELP_ICON_URL = 'http://rucus.ru.ac.za/icons/small/unknown.gif';
|
||||||
|
|
||||||
|
# Header for every page (.= concatinates)
|
||||||
|
$HTML_HEADER = '<TABLE BORDER="3" ALIGN="CENTER" CELLPADDING="5"><TR><TD BGCOLOR="#e0e0ff"><FONT SIZE=+3 COLOR=#000080><STRONG>E Z Mailing List Manager</STRONG></FONT></TD></TR></TABLE></CENTER><P>';
|
||||||
|
$HTML_HEADER .= '<TABLE BORDER="0" CELLPADDING="5" CELLSPACING="5" ALIGN="CENTER" WIDTH="99%"><TR><TD BGCOLOR="#e0e0ff">';
|
||||||
|
|
||||||
|
# Footer for every page (.= concatinates)
|
||||||
|
$HTML_FOOTER = '</TD></TR></TABLE>';
|
||||||
|
$HTML_FOOTER .= '<TABLE BORDER="0" CELLPADDING="5" CELLSPACING="5" ALIGN="CENTER" WIDTH="99%"><TR><TD BGCOLOR="#e0e0ff">';
|
||||||
|
$HTML_FOOTER .= '<FONT SIZE="-1"><A HREF="https://systemausfall.org/toolforge/ezmlm-web" TARGET="_blank">ezmlm-web</A> (v2.2) A web interface to <A HREF="http://www.ezmlm.org/" TARGET="_blank">ezmlm</A></FONT></TD></TR></TABLE>';
|
||||||
|
|
||||||
|
# NEW:
|
||||||
|
# html properties (e.g. color, background-color) can be defined in a
|
||||||
|
# stylesheet (see HTML_CSS_FILE) since version 2.3
|
||||||
|
|
||||||
|
# What is the title of this document?
|
||||||
|
$HTML_TITLE = 'E Z Mailing List Manager';
|
||||||
|
|
||||||
|
# Optional: use a cascading style sheet (css)
|
||||||
|
$HTML_CSS_FILE = "css/default.css";
|
||||||
|
|
||||||
|
# choose a language (en|de)
|
||||||
|
$HTML_LANGUAGE = 'en';
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# include language-specific definitions
|
||||||
|
require('./lang/' . $HTML_LANGUAGE . '.pm');
|
||||||
|
|
9
htaccess.sample
Normal file
9
htaccess.sample
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#$Id: htaccess.sample,v 1.1 2000/01/29 11:35:40 guy Exp $
|
||||||
|
#
|
||||||
|
#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
|
25
index.c
Normal file
25
index.c
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/* $Id: index.c,v 1.2 2000/09/25 18:14:12 guy Exp $ */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* C wrapper to allow ezmlm-web.cgi to run suid */
|
||||||
|
/* Copyright (C) 1999/2000, Guy Antony Halse, All Rights Reserved */
|
||||||
|
/* See the README file in this distribution for copyright information */
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
/* Change this path to wherever you decided to put ezmlm-web.cgi */
|
||||||
|
execv("/usr/local/bin/ezmlm-web.cgi");
|
||||||
|
|
||||||
|
/* Note that you could also use the following to allow a specific user
|
||||||
|
to store their mailing lists in a different directory defined by
|
||||||
|
/tmp/ezmlm-web-demo ... This over-rides the default . */
|
||||||
|
|
||||||
|
/* Look at the exec(3) man page if you don't understand how the arguments
|
||||||
|
list below works */
|
||||||
|
|
||||||
|
/*
|
||||||
|
char *switches[] = { "ezmlm-web.cgi", "-d", "/tmp/ezmlm-web-demo", NULL };
|
||||||
|
execv("/usr/local/bin/ezmlm-web.cgi", switches);
|
||||||
|
*/
|
||||||
|
|
||||||
|
}
|
187
lang/de.pm
Normal file
187
lang/de.pm
Normal file
|
@ -0,0 +1,187 @@
|
||||||
|
# language-specific definitions for ezmlm-web
|
||||||
|
# in english
|
||||||
|
|
||||||
|
# The meanings of the various ezmlm-make command line switches. The default
|
||||||
|
# ones match the ezmlm-idx 0.4 default ezmlmrc ... Alter them to suit your
|
||||||
|
# own ezmlmrc. Removing options from this list makes them unavailable
|
||||||
|
# through ezmlm-web - this could be useful for things like -w
|
||||||
|
|
||||||
|
%EZMLM_LABELS = (
|
||||||
|
# option => ['Short Name',
|
||||||
|
# 'Long Help Description'],
|
||||||
|
|
||||||
|
a => ['archivieren',
|
||||||
|
'Ezmlm wird neue Nachrichten zum Archiv hinzufuegen'],
|
||||||
|
b => ['Archiv nur fuer ModeratorInnen',
|
||||||
|
'Nur ModeratorInnen haben Zugriff zum Archiv'],
|
||||||
|
# c => config. This is implicity called, so is not defined here
|
||||||
|
d => ['Zusammenfassungen',
|
||||||
|
'Erstelle eine Mailing-Liste, an die regelmaessige Zusammenfassungen versandt werden'],
|
||||||
|
# e => edit. Also implicity called, so not defined here
|
||||||
|
f => ['Listenname als Praefix in Betreff einfuegen',
|
||||||
|
'In die versandten Mails wird in der Betreff-Zeile ein Praefix eingefuegt'],
|
||||||
|
g => ['Archiv nur fuer Mitglieder',
|
||||||
|
'Nur TeilnehmerInnen der Liste erhalten Zugriff zum Archiv'],
|
||||||
|
h => ['einschreiben ohne Bestaetigung',
|
||||||
|
'Das Abonnieren der Liste erfordert keine Bestaetigung durch die neue AbonnentIn'],
|
||||||
|
i => ['Web-Index erstellen',
|
||||||
|
'Den Zugriff auf das Archiv per Webinterface erlauben'],
|
||||||
|
j => ['abmelden ohne Bestaetigung',
|
||||||
|
'Das Abbestellen der Liste erfordert keine Bestaetigung durch die ehemalige AbonnentIn'],
|
||||||
|
k => ['Beachte Ausschlussliste',
|
||||||
|
'Einsendungen von Abonnenten, die inm deny-Verzeichnis enthalten sind, werden abgelehnt'],
|
||||||
|
l => ['Abonnenten-Auflistung fuer AdministratorInnen',
|
||||||
|
'Die AdministratorInnen koennen eine Liste aller AbonnentInnen anfordern'],
|
||||||
|
m => ['Moderation aktivieren',
|
||||||
|
'Alle eingehenden Nachrichten muessen durch eine ModeratorIn bestaetigt werden'],
|
||||||
|
n => ['Anpassung der Textbausteine erlauben',
|
||||||
|
'Administratoren duerfen die Standard-Textbausteine per Mail veraendern'],
|
||||||
|
o => ['Nur ModeratorInnen duerfen einsenden',
|
||||||
|
'Nur eingehende Nachrichten von den ModeratorInnen werden akzeptiert'],
|
||||||
|
p => ['oeffentlich',
|
||||||
|
'Die oeffentliche Einschreibung und Archiv-Anforderung ist erlaubt'],
|
||||||
|
q => ['Verarbeite Anforderungen',
|
||||||
|
'Mails an liste-request@domain werden verarbeitet'],
|
||||||
|
r => ['Administration per Mail erlauben',
|
||||||
|
'Die Verwaltung der Liste durch Mails der AdministratorInnen ist erlaubt'],
|
||||||
|
s => ['Einschreibung durch ModeratorIn bestaetigen',
|
||||||
|
'Die Einschreibungen in die Liste und die Zusammenfassungs-Liste werden moderiert'],
|
||||||
|
t => ['Infotext an Mails anhaengen',
|
||||||
|
'An alle ausgehenden Mails wird ein Anhang angefuegt (siehe Datei "text/trailer")'],
|
||||||
|
u => ['Nur Abonnenten duerfen einsenden',
|
||||||
|
'Einsendungen von nicht-eingeschriebenen Mail-Adressen werden abgewiesen'],
|
||||||
|
# v => version. I doubt you will really need this ;-)
|
||||||
|
w => ['Warnung deaktivieren',
|
||||||
|
'Entferne den Aufruf von ezmlm-warn aus der Listen-Konfiguration - es wird angenommen, dass ezmlm-warn auf einem anderem Wege gestartet wird'],
|
||||||
|
x => ['Filtere Anhaenge und Kopfzeilen',
|
||||||
|
'Mails mit den angegebenen Anhangs-Typen werden abgewiesen - die angegebenen Kopfzeilen werden aus den ausgehenden Mails entfernt'],
|
||||||
|
# y => not used
|
||||||
|
# z => not used
|
||||||
|
|
||||||
|
# These all take an extra argument, which is the default value to use
|
||||||
|
|
||||||
|
0 => ['Unterlisten',
|
||||||
|
'Diese Liste soll eine Unterliste einer anderen Hauptliste sein',
|
||||||
|
'hauptliste@domain'],
|
||||||
|
# 1 => not used
|
||||||
|
# 2 => not used
|
||||||
|
3 => ['Absender',
|
||||||
|
'Ersetze den Absender der ausgehenden Mails durch diese Adresse',
|
||||||
|
'Absender'],
|
||||||
|
4 => ['Zusammenfassungseinstellungen',
|
||||||
|
'Einstellungen for ezmlm-tstdig (nach "t" Stunden oder "m" Nachrichten oder "k" Kilobyte',
|
||||||
|
'-t24 -m30 -k64'],
|
||||||
|
5 => ['Adresse des Verantwortlichen der Liste',
|
||||||
|
'Mail-Adresse des Listen-Eigentuemers',
|
||||||
|
'name@domain.org'],
|
||||||
|
6 => ['SQL-Datenbank',
|
||||||
|
'SQL-Datenbank-Zugangsinformationen (erfordert SQL-Unterstuetzung)',
|
||||||
|
'host:port:user:password:datab:table'],
|
||||||
|
7 => ['Listen-Moderations-Verzeichnis',
|
||||||
|
'alternatives Verzeichnis zur Moderationsdatenbank',
|
||||||
|
'/absoluter/pfad/zur/moderations/datenbank'],
|
||||||
|
8 => ['Einschreibungs-Moderations-Verzeichnis',
|
||||||
|
'alternatives Verzeichnis zur Einschreibungs-Moderationsdatenbank',
|
||||||
|
'/absoluter/pfad/zur/abonnenten/moderations/datenbank'],
|
||||||
|
9 => ['Administrations-Verzeichnis',
|
||||||
|
'alternatives Verzeichnis zur Administrationsdatenbank',
|
||||||
|
'/absoluter/pfad/zur/administrations/datenbank'],
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# This list defines most of the context sensitive help in ezmlm-web. What
|
||||||
|
# isn't defined here is the options, which are defined above ... You can
|
||||||
|
# alter these if you feel something else would make more sense to your users
|
||||||
|
# Just be careful of what can fit on a screen!
|
||||||
|
|
||||||
|
%HELPER = (
|
||||||
|
|
||||||
|
# These should be self explainitory
|
||||||
|
addaddress => 'Eine Mail-Adresse - auch in der Form \'Max Meier <max@meier.de>\'',
|
||||||
|
addaddressfile => 'alternativ ist auch eine Datei mit je einer Adresse pro Zeile moeglich',
|
||||||
|
moderator => 'ModeratorInnen kontrollen, welche Mails weitegeleitet und welche AbonnentInnen akzeptiert werden',
|
||||||
|
deny => 'Ausschluss: die Mail-Adressen, die NIE an die Liste schreiben duerfen',
|
||||||
|
allow => 'Zulassung: die Mail-Adressen, die immer an die Liste schreiben duerfen',
|
||||||
|
digest => 'Zusammenfassung: diese Leute werden regelaessge Zusammenfassungen der Mailingliste erhalten',
|
||||||
|
webarch => 'Gehe zum Web-Archiv der Mailingliste',
|
||||||
|
config => 'Einstellungen zur Mailingliste',
|
||||||
|
listname => 'Dies ist der eindeutige Name der Mailingliste',
|
||||||
|
listadd => 'Die Adresse der Mailingliste - nur der lokale Teil kann geaendert werden',
|
||||||
|
webusers => 'unfertig: derzeit koennen Listen-Administratoren nur manuell festgelegt werden',
|
||||||
|
prefix => 'Praefix der Betreffzeile',
|
||||||
|
headerremove => 'Diese Kopfzeilen werden aus den ausgehenden Mails entfernt',
|
||||||
|
headeradd => 'Diese Kopfzeilen werden zu jeder ausgehenden Mail hinzugefuegt',
|
||||||
|
mimeremove => 'Alle Mails, die die genannten Anhangs-Typen beinhalten, werden abgewiesen',
|
||||||
|
allowedit => 'Komma-getrennte Liste von (existierenden) Nutzern oder <CODE>ALL</CODE>',
|
||||||
|
mysqlcreate => 'Anlegen der konfigurierten MySQL-Datenbank'
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# This defines the captions of each of the buttons in ezmlm-web, and allows
|
||||||
|
# you to configure them for your own language or taste. Since these are used
|
||||||
|
# by the switching algorithm it is important that every button has a unique
|
||||||
|
# caption - ie we can't have two 'Edit' buttons doing different things.
|
||||||
|
|
||||||
|
%BUTTON = (
|
||||||
|
|
||||||
|
# These MUST all be unique!
|
||||||
|
create => 'Anlegen',
|
||||||
|
createlist => 'Liste anlegen',
|
||||||
|
edit => 'Bearbeiten',
|
||||||
|
delete => 'Entfernen',
|
||||||
|
deleteaddress => 'Entferne Adresse',
|
||||||
|
addaddress => 'Fuege Adresse hinzu',
|
||||||
|
moderators => 'ModeratorInnen',
|
||||||
|
denylist => 'Ausschlussliste',
|
||||||
|
allowlist => 'Zulassungsliste',
|
||||||
|
digestsubscribers => 'Abonnenten der Zusammenfassungen',
|
||||||
|
configuration => 'Konfiguration',
|
||||||
|
yes => 'Ja',
|
||||||
|
no => 'Nein',
|
||||||
|
updateconfiguration => 'Speichere Konfiguration',
|
||||||
|
edittexts => 'Bearbeite Texte',
|
||||||
|
editfile => 'Bearbeite Datei',
|
||||||
|
savefile => 'Speichere Datei',
|
||||||
|
webarchive => 'Web-Archiv',
|
||||||
|
selectlist => 'Listenauswahl',
|
||||||
|
subscribers => 'AbonnentInnen',
|
||||||
|
cancel => 'Abbruch',
|
||||||
|
resetform => 'Reset',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# This defines the fixed text strings that are used in ezmlm-web. By editing
|
||||||
|
# these along with the button labels and help texts, you can convert ezmlm-web
|
||||||
|
# to another language :-) If anyone gets arround to doing complete templates
|
||||||
|
# for other languages I would appreciate a copy so that I can include it in
|
||||||
|
# future releases of ezmlm-web.
|
||||||
|
|
||||||
|
%LANGUAGE = (
|
||||||
|
nop => 'Diese Funktionalitaet ist noch nicht umgesetzt worden',
|
||||||
|
chooselistinfo => "<UL><LI>Markiere eine Liste in der Auswahlbox oder klicke auf [$BUTTON{'create'}].<LI>Klicke auf den [$BUTTON{'edit'}]-Schalter, falls du die markierte Liste bearbeiten moechtest.<LI>Klicke auf den [$BUTTON{'delete'}]-Schalter, falls du die markierte Liste loeschen moechtest.</UL>",
|
||||||
|
confirmdelete => 'Bestaetige die Loeschung von ', # list name
|
||||||
|
subscribersto => 'Abonnenten von', # list name
|
||||||
|
subscribers => 'Abonnenten',
|
||||||
|
additionalparts => 'Weitere Optionen',
|
||||||
|
posting => 'Einsendungen',
|
||||||
|
subscription => 'Einschreibung',
|
||||||
|
remoteadmin => 'Entfernte AdministratorIn',
|
||||||
|
for => 'fuer', # as in; moderators for blahlist
|
||||||
|
createnew => 'Lege eine neue Liste an',
|
||||||
|
listname => 'Name der Liste',
|
||||||
|
listaddress => 'Adresse der Liste',
|
||||||
|
listoptions => 'Einstellungen der Liste',
|
||||||
|
allowedtoedit => 'Nutzer, die diese Liste bearbeiten duerfen',
|
||||||
|
editconfiguration => 'Einstellungen aendern',
|
||||||
|
prefix => 'Praefix der Betreff-Zeile ausgehender Nachrichten',
|
||||||
|
headerremove => 'zu entfernende Kopfzeilen',
|
||||||
|
headeradd => 'einzufuegende Kopfzeilen',
|
||||||
|
mimeremove => 'abzuweisende Anhangs-Typen',
|
||||||
|
edittextinfo => "Das Auswahlfeld links enthaelt die Dateien des <BR>Verzeichnisses DIR/text/. Diese Dateien werden als Antwort auf spezifische Nutzer-Anfragen oder als Teil aller ausgehenden Nachrichten versandt.<P>Um diese Dateien zu veraendern, waehle ihren Namen im Auswahlfeld an. Anschliessend klicke auf den [$BUTTON{'editfile'}] Schalter.<P>BetäAege [$BUTTON{'cancel'}] um die Veraenderung zu beenden.",
|
||||||
|
editingfile => 'Bearbeite Datei',
|
||||||
|
editfileinfo => '<BIG><STRONG>ezmlm-manage</STRONG></BIG><BR><TT><STRONG><#l#></STRONG></TT> Der Name der Liste<BR><TT><STRONG><#A#></STRONG></TT> Die Anmeldungs-Adresse<BR><TT><STRONG><#R#></STRONG></TT> Die Bestaetigungs-Adresse<P><BIG><STRONG>ezmlm-store</STRONG></BIG><BR><TT><STRONG><#l#></STRONG></TT> Der Name der Liste<BR><TT><STRONG><#A#></STRONG></TT> Die Zusage-Adresse<BR><TT><STRONG><#R#></STRONG></TT> Die Ablehungs-Adresse</UL>',
|
||||||
|
mysqlcreate => 'Lege die MySQL-Datenbank an, falls erforderlich',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# === Configuration file ends ===
|
187
lang/en.pm
Normal file
187
lang/en.pm
Normal file
|
@ -0,0 +1,187 @@
|
||||||
|
# language-specific definitions for ezmlm-web
|
||||||
|
# in english
|
||||||
|
|
||||||
|
# The meanings of the various ezmlm-make command line switches. The default
|
||||||
|
# ones match the ezmlm-idx 0.4 default ezmlmrc ... Alter them to suit your
|
||||||
|
# own ezmlmrc. Removing options from this list makes them unavailable
|
||||||
|
# through ezmlm-web - this could be useful for things like -w
|
||||||
|
|
||||||
|
%EZMLM_LABELS = (
|
||||||
|
# option => ['Short Name',
|
||||||
|
# 'Long Help Description'],
|
||||||
|
|
||||||
|
a => ['Archived',
|
||||||
|
'Ezmlm will archive new messages'],
|
||||||
|
b => ['Block archive',
|
||||||
|
'Only moderators are allowed to access the archive'],
|
||||||
|
# c => config. This is implicity called, so is not defined here
|
||||||
|
d => ['Digest',
|
||||||
|
'Set up a digest list to disseminate digest of the list messages'],
|
||||||
|
# e => edit. Also implicity called, so not defined here
|
||||||
|
f => ['Prefix',
|
||||||
|
'Outgoing subject will be prefixed with the list name'],
|
||||||
|
g => ['Guard Archive',
|
||||||
|
'Archive access requests from unrecognized SENDERs will be rejected'],
|
||||||
|
h => ['Help subscription',
|
||||||
|
'Subscriptions do not require confirmation'],
|
||||||
|
i => ['Indexed',
|
||||||
|
'Indexed for WWW archive access'],
|
||||||
|
j => ['Jump off',
|
||||||
|
'Unsubscribe does not require confirmation'],
|
||||||
|
k => ['Kill',
|
||||||
|
'Posts from addresses in dir/deny/ are rejected'],
|
||||||
|
l => ['Subscriber List',
|
||||||
|
'Remote administrators can request a subscriber list'],
|
||||||
|
m => ['Message Moderation',
|
||||||
|
'All incoming messages are moderated'],
|
||||||
|
n => ['Text Editing',
|
||||||
|
'Allow remote administrators to edit files in dir/text/'],
|
||||||
|
o => ['Others rejected',
|
||||||
|
'Posts from addresses other than moderators are rejected'],
|
||||||
|
p => ['Public',
|
||||||
|
'List will respond to administrative requests and archive retrieval'],
|
||||||
|
q => ['Service Request Address',
|
||||||
|
'Process commands sent in the subject to local-request@host'],
|
||||||
|
r => ['Remote Admin',
|
||||||
|
'Enable remote adminstration of the list'],
|
||||||
|
s => ['Subscription Moderation',
|
||||||
|
'Subscriptions to the main list and digest will be moderated'],
|
||||||
|
t => ['Trailer',
|
||||||
|
'Add a trailer to outgoing messages'],
|
||||||
|
u => ['User Posts Only',
|
||||||
|
'Posts from unrecognized SENDER addresses will be rejected'],
|
||||||
|
# v => version. I doubt you will really need this ;-)
|
||||||
|
w => ['Remove Warn',
|
||||||
|
'Remove the ezmlm-warn(1) invocations from the list setup. It is assumed that ezmlm-warn(1) is run by other means'],
|
||||||
|
x => ['Extra',
|
||||||
|
'Strip certain mimetypes, etc'],
|
||||||
|
# y => not used
|
||||||
|
# z => not used
|
||||||
|
|
||||||
|
# These all take an extra argument, which is the default value to use
|
||||||
|
|
||||||
|
0 => ['Sublist',
|
||||||
|
'Make the list a sublist of list mainlist@host',
|
||||||
|
'mainlist@host'],
|
||||||
|
# 1 => not used
|
||||||
|
# 2 => not used
|
||||||
|
3 => ['From Address',
|
||||||
|
'Replace the "From:" header of the message with "From: fromarg"',
|
||||||
|
'fromarg'],
|
||||||
|
4 => ['Digest Options',
|
||||||
|
'Switches for ezmlm-tstdig(1)',
|
||||||
|
'-t24 -m30 -k64'],
|
||||||
|
5 => ['List Owner',
|
||||||
|
'The email address of the list owner',
|
||||||
|
''],
|
||||||
|
6 => ['SQL Database',
|
||||||
|
'SQL database connect information. Requires SQL support',
|
||||||
|
'host:port:user:password:datab:table'],
|
||||||
|
7 => ['Message Moderation Path',
|
||||||
|
'Make /path the path to the database for message moderators, if the list is set up for message moderation',
|
||||||
|
'/some/full/path'],
|
||||||
|
8 => ['Subscription Moderation Path',
|
||||||
|
'Make /path the path to the database for message moderators, if the list is set up for message moderation',
|
||||||
|
'/some/full/path'],
|
||||||
|
9 => ['Remote Admin Path',
|
||||||
|
'Make /path the path to the database for message moderators, if the list is set up for message moderation',
|
||||||
|
'/some/full/path']
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# This list defines most of the context sensitive help in ezmlm-web. What
|
||||||
|
# isn't defined here is the options, which are defined above ... You can
|
||||||
|
# alter these if you feel something else would make more sense to your users
|
||||||
|
# Just be careful of what can fit on a screen!
|
||||||
|
|
||||||
|
%HELPER = (
|
||||||
|
|
||||||
|
# These should be self explainitory
|
||||||
|
addaddress => 'You may enter any RFC822 compliant email address here, including the comment part. For example; J Random User <jru@on.web.za>',
|
||||||
|
addaddressfile => 'or you may enter the filename of a plain text file containing multiple RFC822 email addresses, one per line',
|
||||||
|
moderator => 'Moderators: people who control who may subscribe or post to a list',
|
||||||
|
deny => 'Deny: A list of addresses that are _never_ allowed to mail the list',
|
||||||
|
allow => 'Allow: A list of address that are allowed to mail the list even if the configuration otherwise restricts it',
|
||||||
|
digest => 'Digest: People who will recieve a digest of all messages on the list',
|
||||||
|
webarch => 'View the web based archive of this list',
|
||||||
|
config => 'This lets you alter the way the list is set up',
|
||||||
|
listname => 'This is the name of the list as displayed on the Select Lists screen. It is also the name of the subdirectory that contains the list',
|
||||||
|
listadd => 'This is the email address of the list. Note that the defaults come from your qmail config. You should just update the local part (before the @)',
|
||||||
|
webusers => 'NB! At this stage, any users specified here must exist. User creation may be added in future versions',
|
||||||
|
prefix => 'Text to add to the subject line of all outgoing messages',
|
||||||
|
headerremove => 'This is a list of headers to remove from all outgoing mail',
|
||||||
|
headeradd => 'This is a list of headers to add to all outging mail',
|
||||||
|
mimeremove => 'All messages whose Content-Type matches these mime types will be bounced back to sender',
|
||||||
|
allowedit => 'Comma separated list of usernames, or <CODE>ALL</CODE> (all valid users)',
|
||||||
|
mysqlcreate => 'This will create the necessary MySQL tables if the list configuration above requires it'
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# This defines the captions of each of the buttons in ezmlm-web, and allows
|
||||||
|
# you to configure them for your own language or taste. Since these are used
|
||||||
|
# by the switching algorithm it is important that every button has a unique
|
||||||
|
# caption - ie we can't have two 'Edit' buttons doing different things.
|
||||||
|
|
||||||
|
%BUTTON = (
|
||||||
|
|
||||||
|
# These MUST all be unique!
|
||||||
|
create => 'Create',
|
||||||
|
createlist => 'Create List',
|
||||||
|
edit => 'Edit',
|
||||||
|
delete => 'Delete',
|
||||||
|
deleteaddress => 'Delete Address',
|
||||||
|
addaddress => 'Add Address',
|
||||||
|
moderators => 'Moderators',
|
||||||
|
denylist => 'Deny List',
|
||||||
|
allowlist => 'Allow List',
|
||||||
|
digestsubscribers => 'Digest Subscribers',
|
||||||
|
configuration => 'Configuration',
|
||||||
|
yes => 'Yes',
|
||||||
|
no => 'No',
|
||||||
|
updateconfiguration => 'Update Configuration',
|
||||||
|
edittexts => 'Edit Texts',
|
||||||
|
editfile => 'Edit File',
|
||||||
|
savefile => 'Save File',
|
||||||
|
webarchive => 'Web Archive',
|
||||||
|
selectlist => 'Select List',
|
||||||
|
subscribers => 'Subscribers',
|
||||||
|
cancel => 'Cancel',
|
||||||
|
resetform => 'Reset Form',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# This defines the fixed text strings that are used in ezmlm-web. By editing
|
||||||
|
# these along with the button labels and help texts, you can convert ezmlm-web
|
||||||
|
# to another language :-) If anyone gets arround to doing complete templates
|
||||||
|
# for other languages I would appreciate a copy so that I can include it in
|
||||||
|
# future releases of ezmlm-web.
|
||||||
|
|
||||||
|
%LANGUAGE = (
|
||||||
|
nop => 'Action not yet implemented',
|
||||||
|
chooselistinfo => "<UL><LI>Choose a mailing list from the selection box or click on [$BUTTON{'create'}].<LI>Click on the [$BUTTON{'edit'}] button if you want to edit the selected list.<LI>Click on the [$BUTTON{'delete'}] button if you want to delete the selected list.</UL>",
|
||||||
|
confirmdelete => 'Confirm deletion of', # list name
|
||||||
|
subscribersto => 'Subscribers to', # list name
|
||||||
|
subscribers => 'subscribers',
|
||||||
|
additionalparts => 'Additional list parts',
|
||||||
|
posting => 'Posting',
|
||||||
|
subscription => 'Subscription',
|
||||||
|
remoteadmin => 'Remote Admin',
|
||||||
|
for => 'for', # as in; moderators for blahlist
|
||||||
|
createnew => 'Create a New List',
|
||||||
|
listname => 'List Name',
|
||||||
|
listaddress => 'List Address',
|
||||||
|
listoptions => 'List Options',
|
||||||
|
allowedtoedit => 'Users allowed to edit this list',
|
||||||
|
editconfiguration => 'Edit the List Configuration',
|
||||||
|
prefix => 'Subject prefex for outgoing messages',
|
||||||
|
headerremove => 'Headers to strip from all outgoing mail',
|
||||||
|
headeradd => 'Headers to add to all outgoing mail',
|
||||||
|
mimeremove => 'Mime types to strip from all outgoing mail',
|
||||||
|
edittextinfo => "The box on the left contains a list of files available in the<BR>DIR/text directory. These files are sent out in response to specfic user request, or as part of all outgoing messages<P>To edit a file, select its name from the box. Then click on the [$BUTTON{'editfile'}] button.<P>Press [$BUTTON{'cancel'}] when you have finished editing.",
|
||||||
|
editingfile => 'Editing File',
|
||||||
|
editfileinfo => '<BIG><STRONG>ezmlm-manage</STRONG></BIG><BR><TT><STRONG><#l#></STRONG></TT> The list name<BR><TT><STRONG><#A#></STRONG></TT> The subscription address<BR><TT><STRONG><#R#></STRONG></TT> The address a subscriber must reply to<P><BIG><STRONG>ezmlm-store</STRONG></BIG><BR><TT><STRONG><#l#></STRONG></TT> The list name<BR><TT><STRONG><#A#></STRONG></TT> The acceptance address<BR><TT><STRONG><#R#></STRONG></TT> The rejection address</UL>',
|
||||||
|
mysqlcreate => 'Create the MySQL database tables if necessary',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# === Configuration file ends ===
|
5
webusers.sample
Normal file
5
webusers.sample
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
comm: guy, arb
|
||||||
|
users: arb
|
||||||
|
members: ALL
|
||||||
|
ALL: root
|
||||||
|
ALLOW_CREATE: root, guy
|
Loading…
Reference in a new issue