summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* GetValidValue(): Use new ValidateEmail() interface andbwarsaw1999-01-091-12/+9
| | | | | | | | 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.
* ApprovedAddMember(): Use the new ValidateEmail() interfacebwarsaw1999-01-091-2/+2
|
* ValidateEmail(): Renamed from ValidEmail().bwarsaw1999-01-091-13/+13
| | | | | | | | | | | | | | | | 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.
* A start on the conversion to class-based exceptions :-)bwarsaw1999-01-091-2/+9
| | | | | | | 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.
* main(): in previous VARHELP workaround, QUERY_STRING could exist butbwarsaw1999-01-091-3/+4
| | | | be an empty string.
* HandleRequests(): the entries in the FieldStorage `form' could be abwarsaw1999-01-091-1/+4
| | | | | list, and not have a `value' attribute. Don't try to int()ify them if so.
* added a couple suggestionsbwarsaw1999-01-091-0/+2
|
* fix a typobwarsaw1999-01-091-4/+4
|
* A bunch of reformatting, updates, and adding a link to thebwarsaw1999-01-091-12/+23
| | | | mailman-checkins mailing list.
* A couple of updatesbwarsaw1999-01-091-8/+11
|
* main(): Kludge-around for accessing variable details when cookies arebwarsaw1999-01-081-13/+23
| | | | | | | | | | | | | | 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.
* DeliverToList(): Ignore ECHILD exceptions that have been reported onbwarsaw1999-01-081-1/+17
| | | | | 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.
* Changes to workaround some bogus clients which either don't include abwarsaw1999-01-082-2/+34
| | | | | | | | | | | | | | | | | | | | | | | | 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!)
* forker(): fixed typo in docstring. Also use Utils.reraise() insteadbwarsaw1999-01-081-2/+4
| | | | of manual re-raising.
* Minor reformattingbwarsaw1999-01-081-4/+4
|
* Added cgi.py from Python 1.5.2 distribution.bwarsaw1999-01-081-0/+1341
|
* A little more visibility to the --with-cgi-gid optionbwarsaw1999-01-081-4/+10
|
* Reformat as a FAQ (actual file move to happen in a moment w/o CVSbwarsaw1999-01-081-43/+64
| | | | notification).
* print_traceback(): A few changes to get the Mailman version numberbwarsaw1999-01-071-2/+10
| | | | into both the error log and the HTML page.
* Somewhat kludgy changes to make debugging mismatching CGI gid's easierbwarsaw1999-01-074-1/+36
| | | | | | | | | | | | | | | | | | | | 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".
* Added what happens in the upgrade to 1.0b7bwarsaw1999-01-061-18/+21
|
* Mostly reformatting to get rid of lines > 78 columns widebwarsaw1999-01-061-14/+14
|
* chunkify(): Don't put mm_cfg.DEFAULT_ADMIN_MEMBER_CHUNKSIZE as abwarsaw1999-01-061-1/+3
| | | | | | 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.
* processQueue(): We can pretty much guarantee that if an os.error isbwarsaw1999-01-051-7/+2
| | | | | | 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.
* TemporaryFile(): Divergence from Python 1.5.2 version. Can't use barebwarsaw1999-01-051-1/+6
| | | | | | `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.
* Added a TODO: fix the file!bwarsaw1999-01-051-0/+1
|
* reraise(): can now take an optional val argument, which is only usedbwarsaw1999-01-051-3/+7
| | | | | | when exc is not None. open_ex(): Use reraise().
* Save(): Can't use a bare `raise' here, since Python 1.5 doesn't havebwarsaw1999-01-051-1/+1
| | | | | it and there are still some 1.5 users out there (thanks Brad Crittenden for finding this).
* IsAdministrivia(): Made more stringent about 'set' command, since weklm1999-01-051-2/+5
| | | | | | | | | | | | | | | | | | | 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...)
* list_members - a new script for dumping a list's members to stdout or a filebwarsaw1999-01-024-32/+238
| | | | | | remove_members - admin script for removing members from the command line subscribe_enmasse - obsolete
* Bumping version number to 1.0b7+ to signify working version betweenbwarsaw1998-12-313-4/+4
| | | | release 1.0b7 and the next release (whatever that will be).
* Fixed making of the tarballbwarsaw1998-12-311-32/+43
|
* Script to create, tag, package releasesbwarsaw1998-12-311-0/+180
|
* Changed the paths so that this script can be run from the top levelbwarsaw1998-12-311-3/+3
| | | | | Mailman directory. It's now called from admin/bin/Release.py, which is also run from the top level directory.
* todo.html is generated from TODO file. Might as well release this.bwarsaw1998-12-312-1/+120
|
* The usualbwarsaw1998-12-311-1/+1
|
* Added a few more names -- Ken, John, Scott, please add anybody else.bwarsaw1998-12-311-0/+6
|
* Added changes with 1.0b7 -- Ken, John, and Scott, please proofread.bwarsaw1998-12-311-0/+33
|
* Some formatting changes, removed line that the release looks forbwarsaw1998-12-311-22/+17
|
* As with the IPC7 directory, let's go ahead and release the publishedbwarsaw1998-12-313-66034/+1
| | | | versions of these files (compressed though).
* Since these papers have been published, we might as well release thembwarsaw1998-12-317-730/+8
| | | | | | | 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.
* SendMailToNewsGroup(): Slight reconfiguration of error messagesbwarsaw1998-12-301-7/+7
|
* SendMailToNewsGroup(): Don't raise an exception when either thebwarsaw1998-12-301-4/+8
| | | | | | | | 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.
* FormatMembershipOptions(): Changes to the table that gets built tobwarsaw1998-12-301-8/+28
| | | | | | 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.
* new class: DefinitionListbwarsaw1998-12-301-5/+14
|
* AddMember(), ApprovedAddMember(): In both cases, normalize addressbwarsaw1998-12-301-0/+14
| | | | | through Utils.ParseAddrs() to get the real email address out of the name argument.
* In `subscribees' section, parse address through Utils.ParseAddrs() sobwarsaw1998-12-301-0/+1
| | | | | the success notification specifies the address instead of any other goo.
* ParseAddrs(): New function which attempts to parse out the emailbwarsaw1998-12-301-0/+42
| | | | | | | | | | 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.
* __get_f(): Use Mailman.Utils.reraise()bwarsaw1998-12-291-5/+2
|
* Use the default argument to the reraise() functionbwarsaw1998-12-291-4/+4
|