diff options
| author | bwarsaw | 2001-12-19 06:19:03 +0000 |
|---|---|---|
| committer | bwarsaw | 2001-12-19 06:19:03 +0000 |
| commit | 9d01a94a431631e3e712ecb3dbe4fd49b620e8d2 (patch) | |
| tree | 97888f6761ee0d50183a3d615c879705d180e5d7 | |
| parent | e72345b8338edfcade82b337037608538dda071a (diff) | |
| download | mailman-9d01a94a431631e3e712ecb3dbe4fd49b620e8d2.tar.gz mailman-9d01a94a431631e3e712ecb3dbe4fd49b620e8d2.tar.zst mailman-9d01a94a431631e3e712ecb3dbe4fd49b620e8d2.zip | |
| -rw-r--r-- | Mailman/MemberAdaptor.py | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Mailman/MemberAdaptor.py b/Mailman/MemberAdaptor.py index e14ffd5ac..af38b10c3 100644 --- a/Mailman/MemberAdaptor.py +++ b/Mailman/MemberAdaptor.py @@ -47,6 +47,15 @@ raised. """ +# Delivery statuses +ENABLED = 0 # enabled +UNKNOWN = 1 # legacy disabled +BYUSER = 2 # disabled by user choice +BYADMIN = 3 # disabled by admin choice +BYBOUNCE = 4 # disabled by bounces + + + class MemberAdaptor: # # The readable interface @@ -149,6 +158,45 @@ class MemberAdaptor: """ raise NotImplemented + def getDeliveryStatus(self, member): + """Return the delivery status of this member. + + Value is one of the module constants: + + ENABLED - The deliveries to the user are not disabled + UNKNOWN - Deliveries are disabled for unknown reasons. The + primary reason for this to happen is that we've copied + their delivery status from a legacy version which didn't + keep track of disable reasons + BYCHOICE - The user explicitly disable deliveries + BYBOUNCE - The system disabled deliveries due to bouncing + + If member is not a member of the list, raise NotAMemberError. + """ + raise NotImplemented + + def getDeliveryStatusChangeTime(self, member): + """Return the time of the last disabled delivery status change. + + If the current delivery status is ENABLED, the status change time will + be zero. If member is not a member of the list, raise + NotAMemberError. + """ + raise NotImplemented + + def getBounceInfo(self, member): + """Return the member's bounce information. + + A value of None means there is no bounce information registered for + the member. + + Bounce info is opaque to the MemberAdaptor. It is set by + setBounceInfo() and returned by this method without modification. + + If member is not a member of the list, raise NotAMemberError. + """ + raise NotImplemented + # # The writeable interface @@ -245,3 +293,33 @@ class MemberAdaptor: topics must be a sequence of strings. """ raise NotImplemented + + def setDeliveryStatus(self, member, status): + """Set the delivery status of the member's address. + + Status must be one of the module constants: + + ENABLED - The deliveries to the user are not disabled + UNKNOWN - Deliveries are disabled for unknown reasons. The + primary reason for this to happen is that we've copied + their delivery status from a legacy version which didn't + keep track of disable reasons + BYCHOICE - The user explicitly disable deliveries + BYBOUNCE - The system disabled deliveries due to bouncing + + This method also records the time (in seconds since epoch) at which + the last status change was made. If the delivery status is changed to + ENABLED, then the change time information will be deleted. This value + is retrievable via getDeliveryStatusChangeTime(). + """ + raise NotImplemented + + def setBounceInfo(self, member, info): + """Set the member's bounce information. + + When info is None, any bounce info for the member is cleared. + + Bounce info is opaque to the MemberAdaptor. It is set by this method + and returned by getBounceInfo() without modification. + """ + raise NotImplemented |
