diff options
| -rw-r--r-- | src/mailman/interfaces/member.py | 3 | ||||
| -rw-r--r-- | src/mailman/model/docs/membership.txt | 8 | ||||
| -rw-r--r-- | src/mailman/model/member.py | 5 |
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: |
