| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
TypeError, but only ValueError was being caught. This means stray
%'s can still crash Mailman.
Also, when interpolation fails, instead of using [INVALID FOOTER],
return the raw footer text template.
|
| | |
|
| |
|
|
| |
options. Caught by Ben Gertzfield.
|
| |
|
|
| |
Gertzfield).
|
| | |
|
| |
|
|
|
|
|
| |
mailto: to their personal email address. Instead, hyperlink the
lot of them with a mailto: to the list's -owner address. That
let's us do a spam detect on the message before forwarding on the
owners.
|
| | |
|
| |
|
|
|
|
|
| |
be properly configured in mm_cfg.py.
process(): Don't support the header == None semantics (it was broken
anyway). We may have to add this back later.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_toadmins(): Run the message through SpamDetect to filter out known
spam patterns in messages to the list owners/moderators. Log such
detected spam to logs/spam and discard the message.
Also, for every message to a list's -owner or -admin address, we
always send it on to the list owners and moderators, even though
the moderators can't access the admin pages (only the admindb
pages).
Note 1: this makes the `tomoderators' key in the message metadata
obsolete.
Note 2: this may not be the Right Thing To Do.
|
| |
|
|
| |
_doperiodic().
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
than the default. Now, the syntax mylist@mydom.ain:www.mydom.ain is
no longer supported; to set a different email host_name from the
web_page_url host, you must first set up VIRTUAL_HOSTS, in which
mydom.ain will be looked up.
main(): No longer split the domain argument on `:'
Calculate host_name and web_page_url as described above.
Also, we're now always responsible for saving the list, so do
that, then unlock the list and perform the rest of the task
outside the try/finally.
|
| |
|
|
|
|
|
| |
allow deletion of list by anybody with a valid cookie
authentication. We /want/ to force the admin to enter the
password explicitly, as an extra confirmation step, so use
Authenticate() instead.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
host_name attributes based on the calculated values.
web_page_url's host name comes from get_domain() interpolated into
DEFAULT_URL_PATTERN, while host_name comes from a lookup in the
VIRTUAL_HOSTS table, defaulting to get_domain() if not found.
Also, we're now responsible for saving the list, and once we've
done so, we can unlock it and do the rest of the task (which
doesn't require the lock, so can be done outside the
try/finally).
|
| |
|
|
|
|
|
|
|
| |
DEFAULT_HOST_NAME to get the hostname.
Also, do the same kind of virtual host filtering for the admin
overview as we do in the listinfo overview. This more clearly
separates the virtual domains (there perhaps should be a site
overview).
|
| |
|
|
|
|
|
|
|
|
| |
DEFAULT_URL_PATTERN and interpolate in the calculated web-request
based host name (via get_domain()). This should improve vhost
support.
get_site_email(): Calculate hostname by looking up get_domain()
results in VIRTUAL_HOSTS, defaulting to get_domain() if no vhost
information was set.
|
| |
|
|
|
|
|
| |
I.e. don't catch and transform OSErrors to MMUnknownListErrors.
Also, don't do a Save() here. The caller is now responsible for
saving the list.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
VIRTUAL_HOSTS is a dictionary mapping url base hostnames to email base
hostnames. E.g. "mail.python.org" -> "python.org". When a new list
is created, we attempt to ascertain the web host from the web request.
We use that for web_page_url and then we look it up in VIRTUAL_HOSTS
to find host_name. If not found, we use the same host for
web_page_url and host_name.
DEAFULT_EMAIL_HOST is now the preferred way to specify the default
email host_name. It is set by configure to @FQDN@.
DEFAULT_URL_HOST is now the preferred way to specify the default host
for web_page_url. It is set by configure to @URL@.
DEFAULT_URL_PATTERN is how to convert DEFAULT_URL_HOST to
web_page_url. It must contain a single %s expansion.
For backwards compatibility, DEFAULT_HOST_NAME = DEFAULT_EMAIL_HOST
and DEFAULT_URL = DEFAULT_URL_PATTERN % DEFAULT_URL_HOST.
Also, added another commented out MAILMAN_URL mirror.
|
| |
|
|
|
|
|
|
|
|
| |
- wrap to 70 characters
- "Mailman" instead of "MailMan"
- added ubiquitous Emacs turd
- bumping to revision 2.0
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
controls whether reserved key checking is done.
Cookie.__ParseString(): When calling Morsel.set(), set strict=0 so no
reserved key checking will be done. This makes sense because
normally, the input data is coming from the web and we should be
liberal in what we accept here. E.g. if a browser is setting
"Version=1" we shouldn't crap out on the whole cookie just because
of that.
We /do/ want to be more strict when we're setting individual keys
programmatically (but that will never call __ParseString()).
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
(instead of misc/S98mailman.in -> misc/S98mailman)
|
| |
|
|
| |
Update .cvsignore accordingly.
|
| |
|
|
| |
support this.
|
| | |
|
| |
|
|
| |
through the web.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
still having problems with the big5 catalog, but I don't have time to
fix it. :(
|
| | |
|
| | |
|
| |
|
|
| |
to point at the recipient instead of the list.
|
| |
|
|
| |
header munging.
|
| |
|
|
| |
multiline individual strings.
|
| |
|
|
|
|
|
|
|
|
| |
the addlang script is being removed since lists can now enable any
site-available language thru-the-web.
"ha" => "xx"
Also update the list of supported languages and a list of promised
languages.
|
| |
|
|
| |
bin/genaliases instead of touch.
|
| |
|
|
|
|
|
| |
we don't bomb out if the file doesn't exist yet. This lets us
recommend bin/genaliases as the way to initialize things instead
of `touch data/aliases.db' which seems to not work for some
people.
|
| |
|
|
| |
respond_to_post_requests
|
| |
|
|
|
| |
"administrator". Add a VARHELP link to member_posting_only when
describing "Restrict..." in the posters option
|