summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Warsaw2011-04-08 05:50:35 -0400
committerBarry Warsaw2011-04-08 05:50:35 -0400
commit0a58c7a9f2fe97665fba102eea9287b28575de5c (patch)
treef8d021e14f6708bcf4f68624f01a0c0f76a315f3
parentc4cf2ab7df4d4fd1437e22c89e9b396418d3a9c5 (diff)
parent664cc74fd0c0156424e8fa891d1a9e75faabd09d (diff)
downloadmailman-0a58c7a9f2fe97665fba102eea9287b28575de5c.tar.gz
mailman-0a58c7a9f2fe97665fba102eea9287b28575de5c.tar.zst
mailman-0a58c7a9f2fe97665fba102eea9287b28575de5c.zip
-rw-r--r--src/mailman/interfaces/member.py3
-rw-r--r--src/mailman/model/docs/membership.txt8
-rw-r--r--src/mailman/model/member.py5
3 files changed, 15 insertions, 1 deletions
diff --git a/src/mailman/interfaces/member.py b/src/mailman/interfaces/member.py
index d20580498..a5e693411 100644
--- a/src/mailman/interfaces/member.py
+++ b/src/mailman/interfaces/member.py
@@ -127,6 +127,9 @@ class IMember(Interface):
address = Attribute(
"""The email address that's subscribed to the list.""")
+ user = Attribute(
+ """The user associated with this member.""")
+
preferences = Attribute(
"""This member's preferences.""")
diff --git a/src/mailman/model/docs/membership.txt b/src/mailman/model/docs/membership.txt
index 2fb66ca82..6f5b82622 100644
--- a/src/mailman/model/docs/membership.txt
+++ b/src/mailman/model/docs/membership.txt
@@ -102,10 +102,16 @@ role.
>>> user_3 = user_manager.create_user(
... 'cperson@example.com', 'Cris Person')
>>> address_3 = list(user_3.addresses)[0]
- >>> address_3.subscribe(mlist, MemberRole.member)
+ >>> member = address_3.subscribe(mlist, MemberRole.member)
+ >>> member
<Member: Cris Person <cperson@example.com>
on test@example.com as MemberRole.member>
+Cris's user record can also be retrieved from her member record.
+
+ >>> member.user
+ <User "Cris Person" (3) at ...>
+
Cris will be a regular delivery member but not a digest member.
>>> dump_members(mlist.members.members)
diff --git a/src/mailman/model/member.py b/src/mailman/model/member.py
index 5e8619324..d32c586d9 100644
--- a/src/mailman/model/member.py
+++ b/src/mailman/model/member.py
@@ -35,6 +35,7 @@ from mailman.database.types import Enum
from mailman.interfaces.action import Action
from mailman.interfaces.listmanager import IListManager
from mailman.interfaces.member import IMember, MemberRole
+from mailman.interfaces.usermanager import IUserManager
@@ -70,6 +71,10 @@ class Member(Model):
return '<Member: {0} on {1} as {2}>'.format(
self.address, self.mailing_list, self.role)
+ @property
+ def user(self):
+ return getUtility(IUserManager).get_user(self.address.email)
+
def _lookup(self, preference):
pref = getattr(self.preferences, preference)
if pref is not None: