summaryrefslogtreecommitdiff
path: root/src/mailman/model/mailinglist.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/model/mailinglist.py')
-rw-r--r--src/mailman/model/mailinglist.py13
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):