| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
EmailAddressError, and clean up logic.
ChangeOptions(): In the `subscribees' section, add a call to
ValidateEmail() so that invalid email addresses can't be added in the
Membership Management text window.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cleaned up its interface so that it always raises an exception if an
address problem is uncovered (it used to both raise exceptions and
return 0 or 1). It now has no useful return value.
Added a re to barf on other unacceptable characters in an email
address, currently: [ ] ( ) < > | ;
Should there be others? The test that were there are retained, but the
domain_parts test was cleaned up (there was a redundant test in
there).
Note that now unqualified addresses (e.g. those that don't contain an
`@' are now DISALLOWED). This goes partially toward Greg Stein's
suggestion.
|
| |
|
|
|
|
|
| |
Because I want to be able to catch both MMBadEmailError and
MMHostileAddress in a `politically correct' and clean except clause, I
made both exceptions classes which derive from new exception class
EmailAddressError.
|
| |
|
|
| |
be an empty string.
|
| |
|
|
|
| |
list, and not have a `value' attribute. Don't try to int()ify them if
so.
|
| | |
|
| | |
|
| |
|
|
| |
mailman-checkins mailing list.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
disabled. The problem: because cookies are disabled, the admin has to
authenticate for each access. We can't change this because otherwise
option values could leak.
So when the admin fills in the password and clicks `let me in...', the
form gets POSTed, and even those the variable to get details on is
given in the form's ACTION, cgi.py ignores any QUERY_STRING on a
POST. Maybe cgi.py should be fixed? In the meantime, we just watch
for the FieldStorage having a `request_login' field and a QUERY_STRING
environment variable. In that case, we manually parse out the query
string and use its value if available.
|
| |
|
|
|
| |
Linux systems when we close the cmdproc pipe. We could be masking a
real bug, but I can't figure it out, and it seems harmless.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
content-type header, or include a bogus one.
cgi.py
FieldStorage.__init__(): if there is no content-type header, use
text/plain for inner parts, but application/x-www-form-urlencoded
for outer parts. Honor any existing content-type header.
Lower down, if the content-type header is something we don't
understand, default to text/plain for inner parts, but
application/x-www-form-urlencoded for outer parts.
This patch will be proposed for Python 1.5.2
driver
run_main(): Play some games to get Mailman's special cgi.py
module. We import it from Mailman.pythonlib.cgi, but then we jam
this module into sys.modules['cgi'] so all those imports in all
those Mailman.Cgi scripts get our special one (without having to
hack all those scripts!)
|
| |
|
|
| |
of manual re-raising.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
notification).
|
| |
|
|
| |
into both the error log and the HTML page.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to figure out.
common.c now sports a global variable running_as_cgi which, when true
causes fatal() to output some mildly more helpful HTML in addition to
the syslog entry. Since this usually only occurs when the site admin
is installing Mailman, this helpful HTML should give a better clue as
to what's going wrong, rather than an unhelpful Web server message and
syslog entry alone.
Naturally, main() in cgi-wrapper.c sets running_as_cgi to 1; it is
initialized to 0 so as to not upset mail-wrapper.c.
Finally, because I think this is a kludge, I've wrapped this all in an
#ifdef HELPFUL, and set Makefile.in to turn this on by default. My
thought is that for some future version, if the site admin specifies
--with-cgi-gid to configure, that proves they're somewhat clueful, and
we'd default the HELPFUL macro to "off".
|
| | |
|
| | |
|
| |
|
|
|
|
| |
default arg value because then this module can't be imported in older
versions of Mailman. Use None in the arglist, and set to the proper
value when None is detected.
|
| |
|
|
|
|
| |
raised from the os.stat() call, the value will unpack into a
two-tuple. So just do the unpacking in place, check the code and use
Utils.reraise() if it wasn't what we expected.
|
| |
|
|
|
|
| |
`raise' here since we may be running under Python 1.5. I don't use
Utils.reraise() because I don't want to import Utils, so just do the
manual sys import and raise.
|
| | |
|
| |
|
|
|
|
| |
when exc is not None.
open_ex(): Use reraise().
|
| |
|
|
|
| |
it and there are still some 1.5 users out there (thanks Brad
Crittenden for finding this).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
got a false positive for a message that had the last line of a
paragraph (hence, short enough to look like administrivia) begin with
'set'.
- Require all 3 arguments (for some reason it was requiring 2 or 3,
while MailCommandHandler seems to clearly require 3 - perhaps we
want to catch malformed administrivia, i'm just assuming not)
- Require second arg of set command matches to be 'on' or 'off'.
I guess administrivia is a delicate balance between weeding out
non-administrivia and catching mis-directed admin messages, even ones
that were badly formed. I'm inclined to opt for greater stingency, at
the risk of not catching malformed and misdirected admin messages.
Tough luck, the misguided poster will have to change their password.
(I bet i get stung by this one day, myself...)
|
| |
|
|
|
|
| |
remove_members - admin script for removing members from the command line
subscribe_enmasse - obsolete
|
| |
|
|
| |
release 1.0b7 and the next release (whatever that will be).
|
| | |
|
| | |
|
| |
|
|
|
| |
Mailman directory. It's now called from admin/bin/Release.py, which
is also run from the top level directory.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
versions of these files (compressed though).
|
| |
|
|
|
|
|
| |
now. By gzip'ing them we can get them down to reasonable sizes.
Check in the compressed versions, remove the uncompressed versions,
add a README, and remove the old intermediate files.
|
| | |
|
| |
|
|
|
|
|
|
| |
linked_newsgroup or nntp_host is empty. Instead log the error to
logs/error and just return, otherwise the email doesn't get posted to
the list.
Removed exception ImproperNNTPConfigError.
|
| |
|
|
|
|
| |
make it much more readable. First, use bare checkboxes and column
headers for what used to be the checkbox labels. Put a border around
the table. Add a legend for what the column headers mean.
|
| | |
|
| |
|
|
|
| |
through Utils.ParseAddrs() to get the real email address out of the
name argument.
|
| |
|
|
|
| |
the success notification specifies the address instead of any other
goo.
|
| |
|
|
|
|
|
|
|
|
| |
addresses from lines such as
User J. Person <person@allusers.com>
person@allusers.com (User J. Person)
It also handles bare email addresses. While this is rather simplistic
regexp matching, I think it will catch most situations.
|
| | |
|
| | |
|