summaryrefslogtreecommitdiff
path: root/Mailman
Commit message (Collapse)AuthorAgeFilesLines
...
* do_command(): The __import__() can raise a ValueError too if the cmdbwarsaw2003-02-041-2/+3
| | | | has dots in it, so treat this the same as an ImportError.
* verpdeliver(): If we find a non-fully qualified recipient address whenbwarsaw2003-02-041-0/+8
| | | | | calculating the verp header, we log a message and skip this recipient, because we can't possibly deliver to this person via verp.
* guess_type(): Compatibility function for Python 2.1/2.2, the formerbwarsaw2003-02-031-1/+10
| | | | | | | which does not accept the strict flag to mimetypes.guess_type(). main(): If guess_type() returns None, use text/html so that the private archive summary page displays correctly.
* CheckCookie(), __checkone(), parsecookie(): A fix for the MM2.0/MM2.1bwarsaw2003-01-311-12/+22
| | | | | | | | cookie problem. We can't use the Cookie module to parse the cookie because it's too strict in what it accepts. Parse it ourselves using re.split(). Should close SF bug # 664466.
* prefix_subject(): Supply default argument '' to the get of the subjectbwarsaw2003-01-291-1/+1
| | | | text. You can't splitlines None.
* maketext(): If a TypeError or ValueError crashed the templatebwarsaw2003-01-281-1/+3
| | | | | interpolation, log a message to logs/error so it's a little easier to debug.
* main(): Sanity check the language cgi variable.bwarsaw2003-01-274-23/+27
|
* subscription_confirm(): Sanity check the language cgi variable.bwarsaw2003-01-271-7/+9
|
* change_options(): Sanity check the user's selected language to be surebwarsaw2003-01-271-2/+2
| | | | it's one of the valid language.
* IsLanguage(): New function.bwarsaw2003-01-271-0/+3
|
* Fixes for the cross-site scripting bugbwarsaw2003-01-261-14/+23
| | | | | | | | | | | | | | | | | | | | | | http://online.securityfocus.com/archive/1/308154 Closes SF bug # 674533 by Tokio Kikuchi Specifically, main(), loginpage(): Check the `user' cgi var for validity and print an innocuous (and non-privacy leaking) message if it fails that test. Don't pass the entire cgidata object to loginpage; instead give just the language argument which is all the latter function uses. Also, be sure to use `safeuser' everywhere we print a message to the results page. safeuser is the escaped version of the `user' cgi var. Unrelated: main(): Sanity check the `language' cgi variable and use the mailing lists's preferred language if it is deliberately invalid.
* makedirs(): Only twiddle the attachment directory permissions if webwarsaw2003-01-241-5/+5
| | | | successfully called makedirs().
* I18n fixes for the digester, based on Tokio Kikuchi's patch #668819.bwarsaw2003-01-241-43/+65
| | | | | | | | | | | | | | | | | | | | | | | | | I've modified it though, so any brokenness is my fault. Specifically, KEEP: Removed in favor of Default.py.in's MIME_DIGEST_KEEP_HEADERS. process(): Use Generator.flatten() instead of the deprecated __call__ syntax. send_i18n_digest(): Make sure things like the Subject headers in the toc are coerced to the language the digest is being sent in (i.e. the list's preferred language). Make sure the masthead, header and footer attachments also get the right matching charset attribute. Make sure that the username extracted from the From header is also in the right character set. Use the Header object for proper wrapping of the Subject lines in the toc, not Utils.wrap() which was broken and not i18n aware. Add a blank line between entries in the toc (might be controversial). Send messages in the plain text digest through the scrubber so attachments (and their MIME goo) don't mess up the plain text digests. lheader(): New convenience function.
* Some fixes to retain the continuation whitespace on Subject: linesbwarsaw2003-01-241-4/+10
| | | | | | | | | | | | even after adding the prefix. Specifically, uheader(): Accepts a continuation_ws parameter which is passed straight through to the Header constructor call. prefix_subject(): Split the pre-prefixed Subject: header into lines and get the continuation_ws character from the first continuation line (it won't matter if there is no continuation line). Pass this to uheader().
* DEFAULT_PLAIN_DIGEST_KEEP_HEADERS: This wasn't actually used anywhere,bwarsaw2003-01-241-4/+19
| | | | | | | | so I've renamed it to PLAIN_DIGEST_KEEP_HEADERS. MIME_DIGEST_KEEP_HEADERS: Added this for use in ToDigest.py -- it's essentially a copy of the KEEP module global from that module (which will be removed).
* main(), content_type(): Removed the latter; mimetyes.guess_type() doesbwarsaw2003-01-201-15/+8
| | | | | | this better. Whitespace normalization.
* A few minor refinements to the previous patch.bwarsaw2003-01-201-6/+10
| | | | | | | | | | | | guess_all_extensions(): Python 2.1 doesn't have mimetypes.common_types. guess_extension(): all could be empty. process(): Need separate try/except clauses for the conversion to unicode, and the conversion to 8-bit strings. Also, use endswith() instead of t[-1] to be more robust against empty strings.
* Fixes for bug #669081. Based on Tokio Kikuchi's patch, but extendedbwarsaw2003-01-201-18/+56
| | | | | | | | | | | | | | | | to fix the other scrubber bugs, and use better Message API. Specifically, guess_extension(): Use mimetypes.guess_all_extensions() to try to find a match between the claimed extension and the claimed content-type. If they match, then just believe it, otherwise, use the first extension guessed. We can still get weird ones because mimetypes has no notion of a priority of mappings from extension to type. process(): Everywhere we set a part's payload to the "scrubbed" message text, first delete the Content-Type header, allowing set_payload() with a character set to set the header, along with the proper charset parameter.
* ScriptURL(): Use s.endswith() where appropriate. Also whitespacebwarsaw2003-01-191-9/+9
| | | | normalization.
* save_attachment(): Use Message.get_content_type() instead of thebwarsaw2003-01-191-4/+5
| | | | deprecated .get_type() method.
* volNameToDate(): Catch failures in time.mktime() which can happen ifbwarsaw2003-01-191-15/+18
| | | | the year is weird (e.g. 1969). Also, code cleanup.
* Copyright years.bwarsaw2003-01-102-5/+5
|
* safe_strftime(): Watch out for TypeError coming back from strftime().bwarsaw2003-01-101-1/+1
|
* _set_date(): Watch out for TypeErrors that can come from time.mktime()bwarsaw2003-01-101-1/+1
|
* Article.__init__(): Watch out for tuples coming back frombwarsaw2003-01-101-0/+3
| | | | | message.get_param(). Such beasts are RFC 2231 charsets which need to be converted to unicode.
* process(): Ben Gertzfield idea to add "Content-Disposition: inline"bwarsaw2003-01-071-6/+10
| | | | | | | | | header to the headers and footers parts as a hint to persnickety clients (not mentioning Outlook here) that the text should be displayed inline instead of as attachments. It does no harm so even if it doesn't completely fix the problem it sounds like a good idea.
* bulkdeliver(): We've had reports of an IOError (code == 4, interruptedbwarsaw2003-01-071-5/+5
| | | | | system call) during the conn.sendmail() call. This just sets the message up to retry later.
* _do_remove(): Patch by Jon Parise to fix a bug in the stanza matchingbwarsaw2003-01-021-3/+3
| | | | | | code which would delete any list with a matching prefix (i.e. "bin/rmlist foo" would also delete the stanza for "foo-one" and "foo-two").
* main(): In the change-of-address section, we only want to show thebwarsaw2003-01-021-3/+5
| | | | | | | | | | | | "you are already using that email address" message if the newaddress matches the case-preserved (subscribed) address. Also, in the set_address section, if cpuser is None, set it to the the user address, since that's what we'll use now as the old address in the ChangeMemberAddress() call. This and related changes should fix problems when the address we're changing to differs for the current address by case only.
* Bump the version number.bwarsaw2003-01-021-2/+2
|
* changeMemberAddress(): Rearrange the order in which sub-tasks arebwarsaw2003-01-021-10/+10
| | | | | | | done. First remove the old member, then add the new member. Also fix the setting of user options so that this is done on the newaddress (lowercased). This should avoid MMAlreadyAMember errors when the address changes by case only.
* ChangeMemberAddress(): Don't raise MMAlreadyAMember if we're doing abwarsaw2003-01-021-13/+4
| | | | | | | | | | global change. ApprovedChangeMemberAddress(): Don't worry about trying to reduce the amount of work by testing on isMember(). This doesn't work anyway when we're changing an address for case only. Just do the changeMemberAddress() call and be done with it. Same goes for when deciding whether to do the change in the other lists.
* This is it baby! Bump the version to 2.1 final.bwarsaw2002-12-311-3/+3
|
* request_creation(): Remove a left over debugging print.bwarsaw2002-12-311-2/+0
|
* do_discard(): Make sure the internal text/plain message has thebwarsaw2002-12-311-2/+4
| | | | | correct character set for the matching language. Closes SF bug #659157.
* subscription_prompt(): Move the setting of the title to after thebwarsaw2002-12-311-4/+9
| | | | | | | | | | | | | | point where the i18n and doc languages are set. Also, get the languages using GetLanguageDescr() so that the language pull down list is also in the correct language. Fixes SF #658213 reported and patches by Daniel Buchmann. subscription_cancel(): Set the language to the user's preferred so that the cancel message is given in the right language. subscription_confirm(): Set the i18n and doc languages to the language from the form so it also shows up in the correct language.
* Inconsequential change since I forgot a checkin message on the last mod:bwarsaw2002-12-311-1/+1
| | | | | | | | ProcessConfirmation(): In the Pending.SUBSCRIPTION section, move the concatenation of the context with the userdesc to before we extract the addr, fullname, password, digest, and lang. This is so we can correctly pick up any changes made in the confirmation page, e.g. the user's preferred language.
* ApprovedDeleteMember(): Get the user's language /before/ webwarsaw2002-12-311-8/+8
| | | | | | unsubscribe them, and then pass this to the SendUnsubscribeAck() call. This is so the notification message can get sent in the correct language -- i.e. the user's language while they were a member.
* SendUnsubscribeAck(): We must pass the target language in as anbwarsaw2002-12-311-2/+2
| | | | | argument, because by the time we get here, the member has already been unsubscribed.
* Lithuanian updates from Mantas Kriauciunas.bwarsaw2002-12-261-1/+1
| | | | lt should use iso-8859-13
* __processbody_URLquote(): Tokio Kikuchi's patch #658598 to fix rc1 bugbwarsaw2002-12-261-1/+3
| | | | in email obscuring in the body of the message.
* Bump to 2.1rc1+bwarsaw2002-12-241-1/+1
|
* Updated catalogs and Lithuanian support by Mantas Kriauciunas.bwarsaw2002-12-241-0/+1
|
* __processbody_URLquote(): Obscure email addresses in the body ofbwarsaw2002-12-241-1/+6
| | | | messages when ARCHIVER_OBSCURES_EMAILADDRS is true.
* show_helds_overview(): Finally tracked down a most annoying buglet.bwarsaw2002-12-241-1/+4
| | | | | | | If a non-member sends a message which is held, but then the sender subsequently subscribes to the list, a confusing admindb page is shown. Now we include a message that the sender has since joined the list.
* Bump to 2.1rc1bwarsaw2002-12-241-3/+3
|
* ApprovedAddMember(): The administrator notice should go out in thebwarsaw2002-12-241-1/+1
| | | | list's preferred language. Closes SF #629616.
* Martin's patch #655214 to fix multi-charset archiving. He says:bwarsaw2002-12-241-108/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch restores MIME charset capabilities for article archiving in CVS Mailman. It: - removes the .charset attribute from articles; all yarticles are encoded in the list's charset, - decodes subject and author to Unicode; if this fails, no decoding (not even MIME) is done to subject and author, - MIME-decodes the body in the constructor using get_payload, removes the hand-crafted qp decoding from _get_body, - Unicode-decodes the body in the constructor if the body's charset differs from the list's charset, - fixes processbody_URLquote to always return byte strings (by escaping the URL also); comparing the old and the new string is no longer possible since the old string is Unicode and the new string is a list-encoded byte string. - changes text archiving to have the archives in the list's encoding, with unsupported characters 'replace'd With these changes, I can process the playground archives correctly, to get mojibake-free pages.
* process(): This is the part of Martin's patch # 655214 not related tobwarsaw2002-12-201-0/+2
| | | | | | | the archiver. Martin says: - Fixes a bug in the scrubber, where a content-transfer-encoding might have survived flattening of the message.
* _oneloop(): Include a clue as to which filebase is being shunted.bwarsaw2002-12-131-0/+1
|