summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Warsaw2011-04-08 05:50:34 -0400
committerBarry Warsaw2011-04-08 05:50:34 -0400
commit664cc74fd0c0156424e8fa891d1a9e75faabd09d (patch)
tree76983881a6b3250793d12406922bf1cafaed1e24
parentb555769ce55285d277da1ba66590f5163cad0cfe (diff)
parent70e5bc5fb4fff267e649c3b6581dff2dee96bf53 (diff)
downloadmailman-664cc74fd0c0156424e8fa891d1a9e75faabd09d.tar.gz
mailman-664cc74fd0c0156424e8fa891d1a9e75faabd09d.tar.zst
mailman-664cc74fd0c0156424e8fa891d1a9e75faabd09d.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: