diff options
Diffstat (limited to 'src/mailman/model/mailinglist.py')
| -rw-r--r-- | src/mailman/model/mailinglist.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mailman/model/mailinglist.py b/src/mailman/model/mailinglist.py index 8c82bedf2..65611f563 100644 --- a/src/mailman/model/mailinglist.py +++ b/src/mailman/model/mailinglist.py @@ -42,6 +42,7 @@ from mailman.interfaces.domain import IDomainManager from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.mailinglist import ( IAcceptableAlias, IAcceptableAliasSet, IMailingList, Personalization) +from mailman.interfaces.member import MemberRole from mailman.interfaces.mime import FilterType from mailman.model import roster from mailman.model.digests import OneLastDigest @@ -420,6 +421,18 @@ class MailingList(Model): self, mime_type, FilterType.pass_extension) store.add(content_filter) + def get_roster(self, role): + """See `IMailingList`.""" + if role is MemberRole.member: + return self.members + elif role is MemberRole.owner: + return self.owners + elif role is MemberRole.moderator: + return self.moderators + else: + raise TypeError( + 'Undefined MemberRole: {0}'.format(role)) + class AcceptableAlias(Model): |
