summaryrefslogtreecommitdiff
path: root/Mailman
Commit message (Collapse)AuthorAgeFilesLines
...
* _dopipeline(): When discarding a message, log its Message-ID: to logs/vettebwarsaw2002-01-211-1/+3
|
* getDeliveryStatusMembers(): Fixed docstring, given by Dan Mick.bwarsaw2002-01-181-2/+2
|
* VERP_REGEXP: Include a named group corresponding to the `bounces'bwarsaw2002-01-171-4/+4
| | | | | interpolation placeholder in the VERP_FORMAT, i.e. everything up to the first + in the default format.
* __verpbounce(): Add some robustness for broken MTAs. We know of atbwarsaw2002-01-171-4/+20
| | | | | | | | | | | | least one in the wild (reported by Dan Mick) that leaves the To: header empty or useless, while the useful VERP'd bounce information ends up in a Delivered-To: header. Note that there can be multiple Delivered-To: headers so we need to search them all (and we don't worry about false positives for forwarded email, because only one should match VERP_REGEXP). Also try Apparently-To: if neither of the others yields a hit.
* Give Message class an __repr__() since apparently the pretty printerbwarsaw2002-01-171-0/+4
| | | | | module pprint uses repr() instead of str(). This aids in debugging with bin/dumpdb.
* Fixed a bug in delivery status disable/enable globally. Specifically,bwarsaw2002-01-171-17/+16
| | | | | | | | | | | | lists_of_member(): Change the signature to take a MailList object as the first argument, not a string hostname. This allows lists_of_member() to filter out the current mailing list, which should update its attribute the "normal" way. main(): Use the new lists_of_member() signature where appropriate. global_options(): The global_enable argument will contain the value for the setDeliveryStatus() call. I.e. it won't be a boolean flag.
* NewVars(), CanonicalizeUserOptions(): Don't set the delivery_statusbwarsaw2002-01-161-1/+1
| | | | | | | | attribute in the latter function, only do it in the former function. Otherwise every time the DATA_FILE_VERSION gets updated, all your users' nomail options will be cleared. Arrrggghh! Thanks to Dan Mick for enduring the pain.
* copyright yearsbwarsaw2002-01-151-1/+1
|
* registerBounce(): Fix for bug when resetting bounce info due to stalebwarsaw2002-01-151-1/+6
| | | | | | information. We don't need to create a new _BounceInfo instance, just update some of the existing one's attribute values. Noticed by Dan Mick.
* show_pending_subs(), show_pending_unsubs(): Sort lexigraphically thebwarsaw2002-01-121-0/+14
| | | | email addresses requesting subscription or unsubscription.
* HoldUnsubscription(): Fix typo. mlist.preferred_language ->bwarsaw2002-01-121-1/+1
| | | | self.preferred_language.
* add_virtual(): Second argument is now optional. If omitted, then itbwarsaw2002-01-121-2/+11
| | | | | | | | is take as the first argument, less the first domain part. E.g. add_virtual('www.dom.ain') uses 'dom.ain' as the emailaddr.
* makealiases(): Apply patch by Jason Mastaler to fix SF bug #502419.bwarsaw2002-01-121-2/+2
| | | | There was a missing quote in the aliases string.
* "import Cookie" instead of "from Cookie import SimpleCookie as Cookie"bwarsaw2002-01-111-12/+9
| | | | | | | | | | | | | The latter broke the upgrade script when upgrading from MM2.1a2 to current cvs. This is because bin/update imports Mailman.MailList which imports Mailman.SecurityManager which, if /that/ tries to from...import...as will fail with an import error since there's still a residual old Cookie.py laying around that doesn't have a SimpleCookie class. Once bin/update does its thing and gets rid of Mailman/Cookie.py{,c} we're safe, but for now this is the best way to worm around the problem.
* send(): RFC 2822 requires the Date: header, and not all MTAs insertbwarsaw2002-01-111-1/+4
| | | | | | | one if it's missing (most notably qmail). It's easy and correct for us to add a compliant one. SF patch #500670 by Jason Mastaler.
* Fix a race condition and a reference counting issue related to forcedbwarsaw2002-01-111-4/+9
| | | | | | | | | | | | | | lock acquisition in mailmanctl. Specifically, _take_possession(): In the while-loop we need to not only check for linkcount <> 2, but also that the contents of the lock file is our magic token and not some other process's. This fixes the race condition. _disown(): Set the private __owned flag to false so __del__ won't try to finalize, and thus unlink the lock files. This fixes the reference counting problem in mailmanctl when both the failing non-forced lock and the re-aquired force lock both point to the same files.
* main(): Fixed two buglets. First in the "if sender:" block, thebwarsaw2002-01-081-2/+5
| | | | | | | | | | expansion of d['description'] referenced a local `esender' which, due to code re-org wasn't defined. Define esender so as to avoid cross-site scripting exploit. Second, it wasn't correct to omit the form and submit button any time there were ?details=... Fix this so that each stanza can decide whether to add the form or not.
* do_discard(): Fix the calculation of the VARHELP url for thebwarsaw2002-01-081-2/+2
| | | | discard_these_nonmembers variable.
* maketext(): As a final fallback, if a template cannot be found in anybwarsaw2002-01-081-5/+12
| | | | | other search location, use templates/en/* since we know the English template must always exist!
* AuthContextInfo(): If ALLOW_SITE_ADMIN_COOKIES is true, and there is abwarsaw2002-01-061-7/+12
| | | | | site password, and we're doing AuthSiteAdmin, then issue a secret/key combination that allows the site password to be cookie-fied.
* ALLOW_SITE_ADMIN_COOKIES: New configuration variable which decidesbwarsaw2002-01-061-0/+8
| | | | | whether we'll issue site authentication cookies or not. Defaults to 0 (i.e. existing behavior).
* ParseMailCommands(): There were a couple of places where thebwarsaw2002-01-061-0/+2
| | | | responsemsg wasn't getting the MIME-Version: header set.
* get_global_password(): Factor this out of check_global_passwordbwarsaw2002-01-061-3/+10
| | | | | because SecurityManager now may want the actual site password, for (optionally) setting a site cookie.
* hold_for_approval(): Add Content-Type: header with the proper charsetbwarsaw2002-01-061-3/+5
| | | | to the admin message we send out.
* AddMember(): Add MIME-Version: and Content-Type: headers to thebwarsaw2002-01-061-0/+3
| | | | confirmation message we're sending to the requester.
* HoldSubscription(), HoldUnsubscription(): Add MIME-Version: andbwarsaw2002-01-061-0/+6
| | | | Content-Type: headers to the admin message we send out.
* GetConfigInfo(): Add configuration for ban_list.bwarsaw2002-01-061-1/+11
|
* process_form(): Handle MembershipIsBanned exceptions.bwarsaw2002-01-061-2/+6
|
* show_pending_subs(): Slight rewording of a label. Sorry translators!bwarsaw2002-01-061-12/+34
| | | | | | | | | | Also, in pending subscriptions listing, add a checkbox which will add the address to the ban_list. show_helds_overview(): Add a checkbox which will add the address to the ban_list. process_form(): Handle adding the address to the ban_list.
* NewVars(): Add ban_list attribute if it's missing.bwarsaw2002-01-061-1/+2
|
* VERSION: Bump to 2.1a4+bwarsaw2002-01-061-3/+3
| | | | DATA_FILE_VERSION: Bump to pick up the new ban_list attribute.
* InitVars(): Add new attribute ban_list which contains a list of emailbwarsaw2002-01-061-0/+24
| | | | | | | | | | addresses or regular expressions that are matched against the subscribing address to see if it is banned from this list. AddMember(): Implement the banned subscription logic. For each item in ban_list match it against the subscribing address, case insensitively. If there is a match, raise MembershipIsBanned exception. If the pattern starts with a ^ it is a regular expression.
* ProcessSubscribeCmd(): Catch MembershipIsBanned exceptions whenbwarsaw2002-01-061-1/+7
| | | | | calling AddMember(). This exception is raised when the subscribing address is banned.
* New error class MembershipIsBanned; used in support of the new bannedbwarsaw2002-01-061-1/+2
| | | | subscription address feature.
* InitVars(): We have to wrap each os.mkdir() in its own try/except sobwarsaw2002-01-041-5/+8
| | | | | | | that the failure of one won't prevent the attempt of the other. This fixes a problem reported by Dan Buchmann where upgrades fail if there are pre-MM2.1a4 lists that have not received a posting before the upgrade to MM2.1a4.
* ChangeMemberName(): Fix typo found by Dan Mick.bwarsaw2002-01-041-1/+1
|
* get_item_gui_value(): Filter out volatile attributes when usingbwarsaw2002-01-041-2/+3
| | | | getattr(), since they won't exist.
* Fix a comment.bwarsaw2002-01-031-2/+2
|
* main(): When short-circuiting the return (because there's no morebwarsaw2002-01-031-9/+30
| | | | | | | | pending results), be sure we still save the list! show_helds_overview(), process_form(): When messages are being held by a moderated member, give the list admin a chance to clear the moderate bit.
* HandleRequest(): Compare the returned status against DEFER explicitlybwarsaw2002-01-031-2/+2
| | | | instead of assuming that DEFER's value is false.
* DEFAULT_DEFAULT_MEMBER_MODERATION: Set default to 1 so new lists will,bwarsaw2002-01-031-2/+2
| | | | by default, put new members on probation.
* show_results(): Don't allow thru-the-web deletion of the site list.bwarsaw2002-01-021-1/+3
|
* main(): Refactor calculation of QUERY_STRING values.bwarsaw2002-01-021-12/+56
| | | | | | | | | | membership_options(): Refactor calculation of adminurl. Also, add a hack to hide or display the table legend (normally hidden) using QUERY_STRING extensions. This may not yet play nicely with all the member chunking extensions. Add Dan Mick idea to include an indication of the reason for `nomail'. Use an abbreviation, described in the legend.
* process_form(): Make sure all the possible form item values are in thebwarsaw2002-01-021-3/+4
| | | | assertion. This fixes subscription approvals.
* T.__init__(): Add comment by Marc MERLIN.bwarsaw2002-01-021-1/+4
|
* Add a hack, based on Marc MERLIN's patch that provides /something/ forbwarsaw2002-01-021-1/+15
| | | | | | | | the archive url before the first message has been posted to the list. InitVars(): Write an initial index.html file which just states that the archive is currently empty. Template comes from emptyarchive.html.
* InitVars(): Change the order of some of the attribute assignments;bwarsaw2002-01-021-3/+4
| | | | | host_name should preceed web_page_url, and the latter should be composed of DEFAULT_URL_PATTERN and DEFAULT_URL_HOST.
* Bump to 2.1a4bwarsaw2001-12-311-2/+2
|
* CanonicalizeUserOptions(): Use augmented assignments.bwarsaw2001-12-311-1/+1
|
* CheckVersion(): Slight simplification.bwarsaw2001-12-311-16/+15
|