summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Bump cvs revision number to 2.0bwarsaw2002-03-140-0/+0
|
* A new template for the invitation emails.bwarsaw2002-03-141-0/+20
|
* VALID_COMMANDS: Added `confirm'bwarsaw2002-03-141-0/+1
|
* A new confirm script for the -confirm address.bwarsaw2002-03-142-1/+63
|
* _dispose(): Add support for the `toconfirm' key, used by the newbwarsaw2002-03-141-2/+12
| | | | confirm mail script.
* makealiases(): Add the -confirm address for VERP-ish confirmations.bwarsaw2002-03-141-2/+2
|
* main(), subscription_prompt(), subscription_confirm(): Thebwarsaw2002-03-141-6/+12
| | | | | Pending.SUBSCRIPTION key now uses UserDesc instances instead of tuples.
* mass_subscribe(), change_options(): Added a "subscribe or invite"bwarsaw2002-03-141-47/+66
| | | | | | | | | | button which changes the action of this page. When invite is chosen, the addresses in the list are invited to the mailing list instead of immediately subscribed. mass_subscribe(), mass_remove(): Rewrite the questions table to use a RadioButtonArray for consistency and cleanliness. Also the ui is slightly better (I think).
* _load(), _save(): Now that we're saving instances in the pendingbwarsaw2002-03-141-10/+35
| | | | | | | | | | database, we need to use pickle instead of marshal. Pickle's more reliable and portable anyway. We can do auto-upgrade from marshal to pickle. If the .pck file isn't found, we'll read the .db file. But we always write the .pck file and if that's successful we can delete the .db file. We also do the standard "write a .tmp file and rotate with os.rename()" dance.
* GetConfirmEmail(): Returns a VERP-ish reply address for VERPdbwarsaw2002-03-141-4/+49
| | | | | | | | | | | confirmation messages. Requires the confirmation cookie. InviteNewMember(): Perform the actions to invite a person to the mailing list. This involves sending the person an invitation confirmation message and sticking them in the pending database. AddMember(), ProcessConfirmation(): Pending.SUBSCRIPTION now takes a single object, a UserDesc, instead of a tuple of components.
* VERP_CONFIRM_FORMAT, VERP_CONFIRM_REGEXP, VERP_CONFIRMATIONS: Newbwarsaw2002-03-141-0/+16
| | | | | | | | | | | | variables which control an alternative way to do confirmations. Instead of relying on an error prone recitation of a Subject: line, we can (optionally) use a VERP-ish From: field with the confirmation cookie in the reply address. This has the added advantage of being able to include an actual human intelligible Subject: header in the confirmation message. ;) Currently, on the new invitation confirmation feature uses this, although the confirmation conversations should be converted.
* Dang, left some debugging syslog()'s in there.bwarsaw2002-03-131-2/+0
|
* Integrating additions and changes contributed by Stefan Divjak (std at std ↵jensv2002-03-133-58/+146
| | | | dot priv dot at)
* just a few words of directionmss2002-03-131-0/+13
|
* Catalogs updated!wilane2002-03-132-218/+148
|
* Added lockfile test.bwarsaw2002-03-131-2/+2
|
* A unit test for LockFile. Fairly dumb, but it makes sure the recentlybwarsaw2002-03-131-0/+45
| | | | fixed "two-instance lock file trample" bug is tested.
* A functional test, throwing messages at Mailman as fast as you canbwarsaw2002-03-131-0/+60
| | | | (with a dumb throttle).
* We can get rid of the old list cache, and the freshen machinery. Nowbwarsaw2002-03-133-30/+11
| | | | | | | | | _open_list() caches the MailList instances in a WeakValueDictionary which don't contribute to the reference count, but ensure that each runner will get one and only one copy of the MailList data. This should help in the memory footprint of the runners, but I suspect we may still be leaking something.
* A fix for a subtle bug in lock file management. If a process openedbwarsaw2002-03-131-5/+15
| | | | | | | | | | | | | | | | two LockFile instances on the same file, both would report that they owned the lock. This is a bug because unlocking the one that shouldn't have had the lock will unlock both. __init__(): To fix this for now we keep a class attribute counter which is incremented each time a new LockFile instance is created. This wouldn't work in a multithreaded environment, be we don't have the problem. ;) __repr__(): Add a little more information to the repr. refresh(): When raising the NotLockedError, add a little useful debugging string as the exception value.
* change_options(): Filter out empty lines before we try to subscribebwarsaw2002-03-121-2/+2
| | | | the un-address that isn't on then <wink>.
* request_creation(): Present a "should we moderate" field on listbwarsaw2002-03-121-0/+24
| | | | | creation, which is used to set the list's default_member_moderation flag.
* Latest updates to the catalogs.bwarsaw2002-03-1219-10136/+13257
|
* update to the latest statemss2002-03-121-237/+221
|
* minor fixmss2002-03-121-2/+2
|
* better extract the status informationmss2002-03-121-1/+1
|
* commited the current status filemss2002-03-121-7/+7
|
* hold_for_approval(): We don't need to remove the charset (in the outerbwarsaw2002-03-121-2/+0
| | | | | | | admin notification message on holds) by calling set_charset(None). Because we're not passing anything on the `text' argument to the UserNotification constructor, no charset will get automatically added.
* Dan Mick's patch (with mods ;) for disabling list owner notificationbwarsaw2002-03-121-0/+27
| | | | | | | | | | | on disabled-due-to-bounces and removal-due-to-bounces. Specifically, GetConfigInfo(): Added gui elements for bounce_notify_owner_on_disable and bounce_notify_owner_on_removal. Also add a separator between the knobs for controlling bounce processing behavior and the knobs for notification. _setValue(): Teach it to convert the new list attributes to integers.
* Dan Mick's patch (with mods ;) for disabling list owner notificationbwarsaw2002-03-121-0/+6
| | | | | | | on disabled-due-to-bounces and removal-due-to-bounces. Specifically, NewVars(): Add bounce_notify_owner_on_disable and bounce_notify_owner_on_removal if missing.
* Dan Mick's patch (with mods ;) for disabling list owner notificationbwarsaw2002-03-121-1/+1
| | | | | | on disabled-due-to-bounces and removal-due-to-bounces. Specifically, Bump the DATA_FILE_VERSION to pick up the new list attributes.
* UserNotification.__init__(): If no text argument is given, don't setbwarsaw2002-03-121-4/+2
| | | | | | | | | the character set. The most common reason for this is that the notification message is a multipart/mixed and it makes no sense to give those type of messages a charset. .send(): Set the `nodecorate' key to 1 so that messages that original from the virgin queue don't get headers and footers.
* Dan Mick's patch (with mods ;) for disabling list owner notificationbwarsaw2002-03-121-0/+7
| | | | | | | | on disabled-due-to-bounces and removal-due-to-bounces. Specifically, DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLE, DEFAULT_BOUNCE_NOTIFY_OWNER_ON_REMOVAL: Default values for the list config attributes of the similar name.
* Dan Mick's patch (with mods ;) for disabling list owner notificationbwarsaw2002-03-121-3/+10
| | | | | | | | | | | | | on disabled-due-to-bounces and removal-due-to-bounces. Specifically, InitVars(): Add bounce_notify_owner_on_disable, and bounce_notify_owner_on_removal. disableBouncingMember(): Only send the admin a bounce notification if bounce_notify_owner_on_disable is true. sendNextNotification(): In the ApprovedDeleteMember() call, set the admin_notif argument to the value of bounce_notify_owner_on_removal.
* subscription_confirm(): Dan Mick noticed that we didn't completelybwarsaw2002-03-121-17/+1
| | | | stamp out passwords. Get rid of all vestiges.
* change_options(): Use splitlines() to find the addressesbwarsaw2002-03-121-5/+2
| | | | | | | (one-per-line) for the mass subscribe or mass unsubscribe. This should make this feature immune to native line endings, as splitlines() handles all the common line endings: CR for Mac, LF for Unix, CRLF for Windows.
* Bump email package version number to 1.2bwarsaw2002-03-123-1/+1
|
* process(): Don't decorate messages sent to the -owner address.bwarsaw2002-03-121-0/+3
|
* process(): Now that Decorate.py is called directly from SMTPDirect.pybwarsaw2002-03-121-2/+2
| | | | | | | | | instead of through the pipeline, we need to be able to disable decoration even when going through SMTPDirect.process(). Examples include messages sent to the -owners address and other messages crafted internally. Add a short-circuit recognition on the `nodecorate' metadata key.
* __init__(): Remove cachelists from the constructor arguments. We canbwarsaw2002-03-123-4/+7
| | | | | | more conveniently use a class attribute to specify this. On the BounceRunner, turn off MailList object caching so that it'll be more friendly to long-term memory use.
* process(): We don't need to do a ValidateEmail() on thebwarsaw2002-03-121-6/+1
| | | | | reply_to_address since, as the note says it's better to validate it on entry, and we now have the architectural support for doing that.
* DEFAULT_FIRST_STRIP_REPLY_TO: Default this to 0 so by default we don'tbwarsaw2002-03-111-4/+4
| | | | strip Reply-To: headers.
* GetConfigInfo(): Change the description for first_strip_reply_to tobwarsaw2002-03-111-5/+13
| | | | | | | describe the intent that an existing Reply-To: can always be stripped. _setValue(): Check to make sure that the reply_to_address has a valid email address before we allow the value to be set.
* process(): Catch any exception coming out of the deliveryfunc() andbwarsaw2002-03-111-1/+9
| | | | | | | | push the last chunk back on the undelivered list, then re-raise the exception. This ensures that delivery will be re-attempted for the last chunk. They'll get dupes but that's better than them missing the message, and we don't know how many in that chunk may or may not have gotten the message.
* DEFAULT_NEW_MEMBER_OPTIONS: Add a note that the member's initialbwarsaw2002-03-111-1/+3
| | | | moderation bit comes from somewhere else.
* UpdateOldVars(): When converting from a MM2.0.x era list, if we findbwarsaw2002-03-111-2/+6
| | | | | the list's moderate attribute is enabled, then we need to set each member's Moderate option to true.
* do_output(): The return type from GetConfigSubCategories() is abwarsaw2002-03-111-1/+1
| | | | | | sequence of 2-tuples. We're only interested in the first element of these 2-tuples, since that is the one that names the subcategory (the second element is a description).
* process(): Apply Ben Gertzfield's patch which always adds the headerbwarsaw2002-03-111-2/+8
| | | | | | | and footer by concatenation if the list's charset is us-ascii, since all charsets we support are strict supersets of us-ascii. Also, coerce the message's charset parameter to lowercase for the comparison.
* Add the bin/unshunt script which (safely) moves messages frombwarsaw2002-03-114-4/+83
| | | | qfiles/shunt back to their original queue.
* whichq(): New method which returns the queue directory.bwarsaw2002-03-111-0/+3
|