diff options
| author | Barry Warsaw | 2011-01-06 16:19:00 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2011-01-06 16:19:00 -0500 |
| commit | d0112b5dc950b8d0180997b6e6dc71bd66af1ee8 (patch) | |
| tree | 2f1143c787c69dd224d763917bc3d1f0154dbc06 /src/mailman/app | |
| parent | c7e794caecb8b12d250be92f698fed8fa1f8a101 (diff) | |
| download | mailman-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.py | 10 | ||||
| -rw-r--r-- | src/mailman/app/membership.py | 4 | ||||
| -rw-r--r-- | src/mailman/app/registrar.py | 4 |
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, |
