summaryrefslogtreecommitdiff
path: root/Mailman/MemberAdaptor.py
Commit message (Collapse)AuthorAgeFilesLines
* Removed a bunch of files that are obsolete. The interfaces are all foldedBarry Warsaw2007-09-271-388/+0
| | | | | | | | | | | | | into the IMailingList interface. OTOH, MemberAdaptor.py is completely useless now (though not entirely eradicated), as is OldStyleMemberships.py. versions.py isn't necessary any longer either because we'll have to do database migrations (and conversions from MM2.1) completely differently. New command line script 'set_members' which is used to take a CSV file and syncing that to a list's membership. Added back the DeliveryStatus.unknown item because we'll need it when we migrate MM 2.1 databases.
* Update copyright years.bwarsaw2007-01-191-1/+1
|
* Add a framework for easier use of alternative MemberAdaptor implementations.bwarsaw2006-07-161-9/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | Also add an experimental (and currently non-functioning) SQLAlchemy implementation. The MemberAdaptor.py interface has been updated in a couple of ways. First, a "transaction interface" has been added so that Mailman can properly sync with the member adaptor. Newly supported methods are load(), lock(), save(), and unlock() and these correspond to methods in the MailList object. Second, __init__() is officially documented to take a MailList instance and nothing else. Third, some of the existing docstrings were incorrect w.r.t. the OldStyleMemberships implementation (such as rasing BadPasswordError in some cases). Most of these should not be the responsibility of the MemberAdaptor, so the docstrings have been updated. Test cases have been added and a new Defaults.py.in variable called MEMBER_ADAPTOR_CLASS has been added which names the class to use. Of course OldStyleMemberships are named by default. There's also a SQLALCHEMY_ENGINE_URL variable for use with the experimental member adaptor. Fix a bug in Configuration where if the etc/mailman.cfg file wasn't found and the mm_cfg.py file was used as a fallback, it would blow away the original namespace copied from Defaults.py.in. This wasn't a problem until we started adding additional names to that namespace, such as 'add_domain'.
* FSF office has moved. chdcking in for MAIN branch.tkikuchi2005-08-271-1/+1
|
* There's no such error as NotImplemented.bwarsaw2003-02-201-33/+32
|
* getMemberName(), addNewMember(), setMemberName(): Update the commentsbwarsaw2002-09-171-6/+10
| | | | | to make it clear that the full name (not RealName) will be a Python Unicode string if it contains non-ASCII characters.
* Whitespace normalizationbwarsaw2002-08-201-5/+4
|
* typobwarsaw2002-08-201-1/+1
|
* getBouncingMembers(): New interface method to return the list ofbwarsaw2002-01-291-0/+9
| | | | | | members with bounce info. This overlaps w/ getDeliveryStatusMembers() since it will return members who have bounced, but have not yet reached the disable threshold.
* getMemberPassword(): Donal Hunt notices that this didn't end in abwarsaw2002-01-261-0/+1
| | | | "raise NotImplemented".
* getDeliveryStatusMembers(): Fixed docstring, given by Dan Mick.bwarsaw2002-01-181-2/+2
|
* getDeliveryStatusMembers(): New interface method which returns a listbwarsaw2001-12-271-2/+14
| | | | | | | | | | | | | | | | of members whose delivery status is in the given argument. This can be used to e.g. find all the members who have been disabled due to excessive bounces. removeMember(): Use setBounceInfo(..., None) to clear a just-removed member's bounce information. MailList.ClearBounceInfo() is gone. setDeliveryStatus(): When setting the member's status to ENABLED, clear all the bounce information by calling setBounceInfo(..., None). This also deletes the member's entry in self.__mlist.delivery_status. setBounceInfo(): Fixed typo, also when info is None, delete the member's entry in the delivery_status dictionary.
* First step on the bounce processer sanity road. These changes fixbwarsaw2001-12-191-0/+78
| | | | | | | | | | | | | | | | | | | | Mailman to keep track of why (and when) delivery is disabled. New list attribute delivery_status and new MemberAdaptor interface methods are added. Delivery status has the following states: ENABLED, BYUSER (disabled by user selection), BYADMIN (disabled by admin selection), BYBOUNCE (disabled by excessive bouncing), UNKNOWN (legacy disable). We no longer use the DisableDelivery user option. Also, for status changes from <anything> -> <anything-but-ENABLED>, we record the time.time(). This information gets thrown away when the delivery is re-enabled. Specific changes here: Added delivery status ENABLED, UNKNOWN, BYUSER, BYADMIN, BYBOUNCE. getDeliveryStatus(), getDeliveryStatusChangeTime(), getBounceInfo(), setDeliveryStatus(), setBounceInfo(): New methods -- note the *BounceInfo() methods may change.
* getMemberLanguage(): If the address isn't a member of the list, returnbwarsaw2001-07-291-2/+21
| | | | | | | | | | | | | | the list's default language instead of raising an exception. getMemberTopics(): New API method which returns the list of topics the member is interested in. changeMemberAddress(): Grow a `nodelete' argument, defaulting to 0, which inhibits the normal deletion of the oldaddress after the change (used in bin/clone_members). setMemberTopics(): New API method which sets the list of topics the member is interested in.
* intermediatebwarsaw2001-07-181-0/+228