summaryrefslogtreecommitdiff
path: root/src/mailman/model/mailinglist.py
diff options
context:
space:
mode:
authorBarry Warsaw2011-04-22 19:58:07 -0400
committerBarry Warsaw2011-04-22 19:58:07 -0400
commit989267f6edbf55a1109d24c2b5e20051ea6a24a8 (patch)
tree8b290e5760cbb28d43a24a3e1460bdf7043c78a4 /src/mailman/model/mailinglist.py
parentea77dd42093f453c4f3f3aad22d33952b3e3ec5a (diff)
downloadmailman-989267f6edbf55a1109d24c2b5e20051ea6a24a8.tar.gz
mailman-989267f6edbf55a1109d24c2b5e20051ea6a24a8.tar.zst
mailman-989267f6edbf55a1109d24c2b5e20051ea6a24a8.zip
Users subscribed to a mailing list via their preferred address show up
correctly in the REST API's list of members. This even correctly tracks changes in their preferred address.
Diffstat (limited to 'src/mailman/model/mailinglist.py')
-rw-r--r--src/mailman/model/mailinglist.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mailman/model/mailinglist.py b/src/mailman/model/mailinglist.py
index 2b205775e..9294fe7cc 100644
--- a/src/mailman/model/mailinglist.py
+++ b/src/mailman/model/mailinglist.py
@@ -43,7 +43,8 @@ from mailman.interfaces.domain import IDomainManager
from mailman.interfaces.languages import ILanguageManager
from mailman.interfaces.mailinglist import (
IAcceptableAlias, IAcceptableAliasSet, IMailingList, Personalization)
-from mailman.interfaces.member import AlreadySubscribedError, MemberRole
+from mailman.interfaces.member import (
+ AlreadySubscribedError, MemberRole, MissingPreferredAddressError)
from mailman.interfaces.mime import FilterType
from mailman.interfaces.user import IUser
from mailman.model import roster
@@ -458,6 +459,8 @@ class MailingList(Model):
raise AlreadySubscribedError(
self.fqdn_listname, subscriber.email, role)
elif IUser.providedBy(subscriber):
+ if subscriber.preferred_address is None:
+ raise MissingPreferredAddressError(subscriber)
member = store.find(
Member,
Member.role == role,