diff options
Diffstat (limited to '')
| -rw-r--r-- | mailman/interfaces/member.py | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/mailman/interfaces/member.py b/mailman/interfaces/member.py index a2278020c..01825b1d9 100644 --- a/mailman/interfaces/member.py +++ b/mailman/interfaces/member.py @@ -15,13 +15,12 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, # USA. - """Interface describing the basics of a member.""" -from munepy import Enum -from zope.interface import Interface, Attribute +__metaclass__ = type __all__ = [ + 'AlreadySubscribedError', 'DeliveryMode', 'DeliveryStatus', 'IMember', @@ -29,6 +28,12 @@ __all__ = [ ] +from munepy import Enum +from zope.interface import Interface, Attribute + +from mailman.Errors import SubscriptionError + + class DeliveryMode(Enum): # Regular (i.e. non-digest) delivery @@ -63,6 +68,20 @@ class MemberRole(Enum): +class AlreadySubscribedError(SubscriptionError): + """The member is already subscribed to the mailing list with this role.""" + + def __init__(self, fqdn_listname, address, role): + self._fqdn_listname = fqdn_listname + self._address = address + self._role = role + + def __str__(self): + return '%s is already a %s of mailing list %s' % ( + self._address, self._role, self._fqdn_listname) + + + class IMember(Interface): """A member of a mailing list.""" |
