| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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'.
|
| | |
|
| | |
|
| |
|
|
|
| |
to make it clear that the full name (not RealName) will be a Python
Unicode string if it contains non-ASCII characters.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
members with bounce info. This overlaps w/ getDeliveryStatusMembers()
since it will return members who have bounced, but have not yet
reached the disable threshold.
|
| |
|
|
| |
"raise NotImplemented".
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|