diff options
Diffstat (limited to 'src/mailman/model/docs')
| -rw-r--r-- | src/mailman/model/docs/addresses.txt | 41 | ||||
| -rw-r--r-- | src/mailman/model/docs/mailinglist.txt | 101 | ||||
| -rw-r--r-- | src/mailman/model/docs/membership.txt | 12 | ||||
| -rw-r--r-- | src/mailman/model/docs/requests.txt | 4 | ||||
| -rw-r--r-- | src/mailman/model/docs/users.txt | 8 |
5 files changed, 77 insertions, 89 deletions
diff --git a/src/mailman/model/docs/addresses.txt b/src/mailman/model/docs/addresses.txt index fdcc993b5..ffbb897ab 100644 --- a/src/mailman/model/docs/addresses.txt +++ b/src/mailman/model/docs/addresses.txt @@ -153,47 +153,6 @@ And of course, you can also set the validation date. 2007-05-13 22:54:01 -Subscriptions -============= - -Addresses get subscribed to mailing lists, not users. When the address is -subscribed, a role is specified. -:: - - >>> address_5 = user_manager.create_address( - ... 'eperson@example.com', 'Elly Person') - >>> mlist = create_list('test@example.com') - - >>> from mailman.interfaces.member import MemberRole - >>> address_5.subscribe(mlist, MemberRole.owner) - <Member: Elly Person <eperson@example.com> on - test@example.com as MemberRole.owner> - >>> address_5.subscribe(mlist, MemberRole.member) - <Member: Elly Person <eperson@example.com> on - test@example.com as MemberRole.member> - -Now Elly is both an owner and a member of the mailing list. - - >>> def memberkey(member): - ... return member.mailing_list, member.address.email, int(member.role) - >>> dump_list(mlist.owners.members, key=memberkey) - <Member: Elly Person <eperson@example.com> on - test@example.com as MemberRole.owner> - >>> dump_list(mlist.moderators.members, key=memberkey) - *Empty* - >>> dump_list(mlist.administrators.members, key=memberkey) - <Member: Elly Person <eperson@example.com> on - test@example.com as MemberRole.owner> - >>> dump_list(mlist.members.members, key=memberkey) - <Member: Elly Person <eperson@example.com> on - test@example.com as MemberRole.member> - >>> dump_list(mlist.regular_members.members, key=memberkey) - <Member: Elly Person <eperson@example.com> on - test@example.com as MemberRole.member> - >>> dump_list(mlist.digest_members.members, key=memberkey) - *Empty* - - Case-preserved addresses ======================== diff --git a/src/mailman/model/docs/mailinglist.txt b/src/mailman/model/docs/mailinglist.txt index 33d681762..cc95c077c 100644 --- a/src/mailman/model/docs/mailinglist.txt +++ b/src/mailman/model/docs/mailinglist.txt @@ -9,16 +9,16 @@ the system by its posting address, i.e. the email address you would send a message to in order to post a message to the mailing list. This must be fully qualified. - >>> alpha = create_list('alpha@example.com') - >>> print alpha.fqdn_listname - alpha@example.com + >>> mlist = create_list('aardvark@example.com') + >>> print mlist.fqdn_listname + aardvark@example.com The mailing list also has convenient attributes for accessing the list's short name (i.e. local part) and host name. - >>> print alpha.list_name - alpha - >>> print alpha.host_name + >>> print mlist.list_name + aardvark + >>> print mlist.host_name example.com @@ -29,46 +29,75 @@ Mailing list membership is represented by `rosters`. Each mailing list has several rosters of members, representing the subscribers to the mailing list, the owners, the moderators, and so on. The rosters are defined by a membership role. + +Addresses can be explicitly subscribed to a mailing list. By default, a +subscription puts the address in the `member` role, meaning that address will +receive a copy of any message sent to the mailing list. :: - >>> from mailman.interfaces.member import MemberRole - >>> from mailman.testing.helpers import subscribe + >>> from mailman.interfaces.usermanager import IUserManager + >>> from zope.component import getUtility + >>> user_manager = getUtility(IUserManager) - >>> subscribe(alpha, 'Anne') - >>> subscribe(alpha, 'Bart') - >>> subscribe(alpha, 'Cris') - >>> subscribe(alpha, 'Anne', MemberRole.owner) - >>> subscribe(alpha, 'Dave', MemberRole.owner) - >>> subscribe(alpha, 'Elle', MemberRole.moderator) + >>> aperson = user_manager.create_address('aperson@example.com') + >>> bperson = user_manager.create_address('bperson@example.com') + >>> mlist.subscribe(aperson) + <Member: aperson@example.com on aardvark@example.com as MemberRole.member> + >>> mlist.subscribe(bperson) + <Member: bperson@example.com on aardvark@example.com as MemberRole.member> -We can retrieve a roster directly... +Both addresses appear on the roster of members. - >>> for member in alpha.members.members: - ... print member.address - Anne Person <aperson@example.com> - Bart Person <bperson@example.com> - Cris Person <cperson@example.com> + >>> for member in mlist.members.members: + ... print member + <Member: aperson@example.com on aardvark@example.com as MemberRole.member> + <Member: bperson@example.com on aardvark@example.com as MemberRole.member> -...or programmatically. +By explicitly specifying the role of the subscription, an address can be added +to the owner and moderator rosters. - >>> roster = alpha.get_roster(MemberRole.member) - >>> for member in roster.members: - ... print member.address - Anne Person <aperson@example.com> - Bart Person <bperson@example.com> - Cris Person <cperson@example.com> + >>> from mailman.interfaces.member import MemberRole + >>> mlist.subscribe(aperson, MemberRole.owner) + <Member: aperson@example.com on aardvark@example.com as MemberRole.owner> + >>> cperson = user_manager.create_address('cperson@example.com') + >>> mlist.subscribe(cperson, MemberRole.owner) + <Member: cperson@example.com on aardvark@example.com as MemberRole.owner> + >>> mlist.subscribe(cperson, MemberRole.moderator) + <Member: cperson@example.com on aardvark@example.com + as MemberRole.moderator> + +A Person is now both a member and an owner of the mailing list. C Person is +an owner and a moderator. +:: -This includes the roster of owners... + >>> for member in mlist.owners.members: + ... print member + <Member: aperson@example.com on aardvark@example.com as MemberRole.owner> + <Member: cperson@example.com on aardvark@example.com as MemberRole.owner> - >>> roster = alpha.get_roster(MemberRole.owner) + >>> for member in mlist.moderators.members: + ... print member + <Member: cperson@example.com on aardvark@example.com + as MemberRole.moderator> + + +All rosters can also be accessed indirectly. +:: + + >>> roster = mlist.get_roster(MemberRole.member) >>> for member in roster.members: - ... print member.address - Anne Person <aperson@example.com> - Dave Person <dperson@example.com> + ... print member + <Member: aperson@example.com on aardvark@example.com as MemberRole.member> + <Member: bperson@example.com on aardvark@example.com as MemberRole.member> -...and moderators. + >>> roster = mlist.get_roster(MemberRole.owner) + >>> for member in roster.members: + ... print member + <Member: aperson@example.com on aardvark@example.com as MemberRole.owner> + <Member: cperson@example.com on aardvark@example.com as MemberRole.owner> - >>> roster = alpha.get_roster(MemberRole.moderator) + >>> roster = mlist.get_roster(MemberRole.moderator) >>> for member in roster.members: - ... print member.address - Elle Person <eperson@example.com> + ... print member + <Member: cperson@example.com on aardvark@example.com + as MemberRole.moderator> diff --git a/src/mailman/model/docs/membership.txt b/src/mailman/model/docs/membership.txt index 6f5b82622..8a3f0da16 100644 --- a/src/mailman/model/docs/membership.txt +++ b/src/mailman/model/docs/membership.txt @@ -51,7 +51,7 @@ her. >>> from mailman.interfaces.member import MemberRole >>> address_1 = list(user_1.addresses)[0] - >>> address_1.subscribe(mlist, MemberRole.owner) + >>> mlist.subscribe(address_1, MemberRole.owner) <Member: Anne Person <aperson@example.com> on test@example.com as MemberRole.owner> >>> dump_list(member.address for member in mlist.owners.members) @@ -73,7 +73,7 @@ Bart becomes a moderator of the list. >>> print user_2 <User "Bart Person" (...) at ...> >>> address_2 = list(user_2.addresses)[0] - >>> address_2.subscribe(mlist, MemberRole.moderator) + >>> mlist.subscribe(address_2, MemberRole.moderator) <Member: Bart Person <bperson@example.com> on test@example.com as MemberRole.moderator> >>> dump_list(member.address for member in mlist.moderators.members) @@ -102,7 +102,7 @@ role. >>> user_3 = user_manager.create_user( ... 'cperson@example.com', 'Cris Person') >>> address_3 = list(user_3.addresses)[0] - >>> member = address_3.subscribe(mlist, MemberRole.member) + >>> member = mlist.subscribe(address_3, MemberRole.member) >>> member <Member: Cris Person <cperson@example.com> on test@example.com as MemberRole.member> @@ -125,7 +125,7 @@ It's easy to make the list administrators members of the mailing list too. >>> members = [] >>> for address in mlist.administrators.addresses: - ... member = address.subscribe(mlist, MemberRole.member) + ... member = mlist.subscribe(address, MemberRole.member) ... members.append(member) >>> dump_list(members, key=attrgetter('address.email')) <Member: Anne Person <aperson@example.com> on @@ -157,7 +157,7 @@ role. >>> user_6 = user_manager.create_user('fperson@example.com', 'Fred Person') >>> address_6 = list(user_6.addresses)[0] - >>> member_6 = address_6.subscribe(mlist, MemberRole.nonmember) + >>> member_6 = mlist.subscribe(address_6, MemberRole.nonmember) >>> member_6 <Member: Fred Person <fperson@example.com> on test@example.com as MemberRole.nonmember> @@ -233,7 +233,7 @@ Double subscriptions It is an error to subscribe someone to a list with the same role twice. - >>> address_1.subscribe(mlist, MemberRole.owner) + >>> mlist.subscribe(address_1, MemberRole.owner) Traceback (most recent call last): ... AlreadySubscribedError: aperson@example.com is already a MemberRole.owner diff --git a/src/mailman/model/docs/requests.txt b/src/mailman/model/docs/requests.txt index 2ff173422..bebb61259 100644 --- a/src/mailman/model/docs/requests.txt +++ b/src/mailman/model/docs/requests.txt @@ -716,12 +716,12 @@ notification. >>> from mailman.interfaces.member import MemberRole >>> user_1 = user_manager.create_user('gperson@example.com') >>> address_1 = list(user_1.addresses)[0] - >>> address_1.subscribe(mlist, MemberRole.member) + >>> mlist.subscribe(address_1, MemberRole.member) <Member: gperson@example.com on alist@example.com as MemberRole.member> >>> user_2 = user_manager.create_user('hperson@example.com') >>> address_2 = list(user_2.addresses)[0] - >>> address_2.subscribe(mlist, MemberRole.member) + >>> mlist.subscribe(address_2, MemberRole.member) <Member: hperson@example.com on alist@example.com as MemberRole.member> >>> id_5 = moderator.hold_unsubscription(mlist, 'gperson@example.com') diff --git a/src/mailman/model/docs/users.txt b/src/mailman/model/docs/users.txt index c8244c506..f15d5453b 100644 --- a/src/mailman/model/docs/users.txt +++ b/src/mailman/model/docs/users.txt @@ -207,14 +207,14 @@ membership role. >>> mlist_3 = create_list('xtest_3@example.com') >>> from mailman.interfaces.member import MemberRole - >>> com.subscribe(mlist_1, MemberRole.member) + >>> mlist_1.subscribe(com, MemberRole.member) <Member: Zoe Person <zperson@example.com> on xtest_1@example.com as MemberRole.member> - >>> org.subscribe(mlist_2, MemberRole.member) + >>> mlist_2.subscribe(org, MemberRole.member) <Member: zperson@example.org on xtest_2@example.com as MemberRole.member> - >>> org.subscribe(mlist_2, MemberRole.owner) + >>> mlist_2.subscribe(org, MemberRole.owner) <Member: zperson@example.org on xtest_2@example.com as MemberRole.owner> - >>> net.subscribe(mlist_3, MemberRole.moderator) + >>> mlist_3.subscribe(net, MemberRole.moderator) <Member: zperson@example.net on xtest_3@example.com as MemberRole.moderator> |
