diff options
| author | Barry Warsaw | 2011-04-08 05:50:35 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2011-04-08 05:50:35 -0400 |
| commit | 0a58c7a9f2fe97665fba102eea9287b28575de5c (patch) | |
| tree | f8d021e14f6708bcf4f68624f01a0c0f76a315f3 /src | |
| parent | c4cf2ab7df4d4fd1437e22c89e9b396418d3a9c5 (diff) | |
| parent | 664cc74fd0c0156424e8fa891d1a9e75faabd09d (diff) | |
| download | mailman-0a58c7a9f2fe97665fba102eea9287b28575de5c.tar.gz mailman-0a58c7a9f2fe97665fba102eea9287b28575de5c.tar.zst mailman-0a58c7a9f2fe97665fba102eea9287b28575de5c.zip | |
Diffstat (limited to 'src')
| -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: |
