summaryrefslogtreecommitdiff
path: root/src/mailman/app
diff options
context:
space:
mode:
authorBarry Warsaw2011-01-06 16:19:00 -0500
committerBarry Warsaw2011-01-06 16:19:00 -0500
commitd0112b5dc950b8d0180997b6e6dc71bd66af1ee8 (patch)
tree2f1143c787c69dd224d763917bc3d1f0154dbc06 /src/mailman/app
parentc7e794caecb8b12d250be92f698fed8fa1f8a101 (diff)
downloadmailman-d0112b5dc950b8d0180997b6e6dc71bd66af1ee8.tar.gz
mailman-d0112b5dc950b8d0180997b6e6dc71bd66af1ee8.tar.zst
mailman-d0112b5dc950b8d0180997b6e6dc71bd66af1ee8.zip
Implement the email address validator as a utility for easier pluggability.
Diffstat (limited to 'src/mailman/app')
-rw-r--r--src/mailman/app/lifecycle.py10
-rw-r--r--src/mailman/app/membership.py4
-rw-r--r--src/mailman/app/registrar.py4
3 files changed, 10 insertions, 8 deletions
diff --git a/src/mailman/app/lifecycle.py b/src/mailman/app/lifecycle.py
index 39ec09aa7..b30266f3b 100644
--- a/src/mailman/app/lifecycle.py
+++ b/src/mailman/app/lifecycle.py
@@ -33,7 +33,7 @@ import logging
from zope.component import getUtility
from mailman.config import config
-from mailman.email.validate import validate
+from mailman.interfaces.address import IEmailValidator
from mailman.interfaces.domain import (
BadDomainSpecificationError, IDomainManager)
from mailman.interfaces.listmanager import IListManager
@@ -58,13 +58,15 @@ def create_list(fqdn_listname, owners=None):
:type owners: list of string email addresses
:return: The new mailing list.
:rtype: `IMailingList`
- :raises `BadDomainSpecificationError`: when the hostname part of
+ :raises BadDomainSpecificationError: when the hostname part of
`fqdn_listname` does not exist.
- :raises `ListAlreadyExistsError`: when the mailing list already exists.
+ :raises ListAlreadyExistsError: when the mailing list already exists.
+ :raises InvalidEmailAddressError: when the fqdn email address is invalid.
"""
if owners is None:
owners = []
- validate(fqdn_listname)
+ # This raises I
+ getUtility(IEmailValidator).validate(fqdn_listname)
# pylint: disable-msg=W0612
listname, domain = fqdn_listname.split('@', 1)
if domain not in getUtility(IDomainManager):
diff --git a/src/mailman/app/membership.py b/src/mailman/app/membership.py
index 8ea8769a6..e8564bc60 100644
--- a/src/mailman/app/membership.py
+++ b/src/mailman/app/membership.py
@@ -33,7 +33,7 @@ from mailman import Utils
from mailman.app.notifications import send_goodbye_message
from mailman.core.i18n import _
from mailman.email.message import OwnerNotification
-from mailman.email.validate import validate
+from mailman.interfaces.address import IEmailValidator
from mailman.interfaces.member import (
AlreadySubscribedError, MemberRole, MembershipIsBannedError,
NotAMemberError)
@@ -67,7 +67,7 @@ def add_member(mlist, email, realname, password, delivery_mode, language):
:raises MembershipIsBannedError: if the membership is not allowed.
"""
# Let's be extra cautious.
- validate(email)
+ getUtility(IEmailValidator).validate(email)
if mlist.members.get_member(email) is not None:
raise AlreadySubscribedError(
mlist.fqdn_listname, email, MemberRole.member)
diff --git a/src/mailman/app/registrar.py b/src/mailman/app/registrar.py
index 181d48126..ec899237a 100644
--- a/src/mailman/app/registrar.py
+++ b/src/mailman/app/registrar.py
@@ -33,7 +33,7 @@ from zope.interface import implements
from mailman.core.i18n import _
from mailman.email.message import UserNotification
-from mailman.email.validate import validate
+from mailman.interfaces.address import IEmailValidator
from mailman.interfaces.listmanager import IListManager
from mailman.interfaces.member import MemberRole
from mailman.interfaces.pending import IPendable, IPendings
@@ -57,7 +57,7 @@ class Registrar:
"""See `IUserRegistrar`."""
# First, do validation on the email address. If the address is
# invalid, it will raise an exception, otherwise it just returns.
- validate(email)
+ getUtility(IEmailValidator).validate(email)
# Create a pendable for the registration.
pendable = PendableRegistration(
type=PendableRegistration.PEND_KEY,