summaryrefslogtreecommitdiff
path: root/mailman/interfaces/member.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--mailman/interfaces/member.py25
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."""