summaryrefslogtreecommitdiff
path: root/src/mailman/model/roster.py
diff options
context:
space:
mode:
authorBarry Warsaw2016-03-25 11:01:46 -0400
committerBarry Warsaw2016-03-25 11:01:46 -0400
commit7fd9e5ab09b0da347da0607b47d2d3838bd80f0c (patch)
treeb150f85e5fc482f45e973a233b5184d3ca4b78a7 /src/mailman/model/roster.py
parent71ebe367a52316811f570d09f2213c192a47973f (diff)
downloadmailman-7fd9e5ab09b0da347da0607b47d2d3838bd80f0c.tar.gz
mailman-7fd9e5ab09b0da347da0607b47d2d3838bd80f0c.tar.zst
mailman-7fd9e5ab09b0da347da0607b47d2d3838bd80f0c.zip
Diffstat (limited to 'src/mailman/model/roster.py')
-rw-r--r--src/mailman/model/roster.py40
1 files changed, 15 insertions, 25 deletions
diff --git a/src/mailman/model/roster.py b/src/mailman/model/roster.py
index 450c5ee84..5dc0423b2 100644
--- a/src/mailman/model/roster.py
+++ b/src/mailman/model/roster.py
@@ -22,18 +22,7 @@ the ones that fit a particular role. These are used as the member, owner,
moderator, and administrator roster filters.
"""
-__all__ = [
- 'AdministratorRoster',
- 'DigestMemberRoster',
- 'MemberRoster',
- 'Memberships',
- 'ModeratorRoster',
- 'OwnerRoster',
- 'RegularMemberRoster',
- 'Subscribers',
- ]
-
-
+from mailman import public
from mailman.database.transaction import dbconnection
from mailman.interfaces.member import DeliveryMode, MemberRole
from mailman.interfaces.roster import IRoster
@@ -43,7 +32,7 @@ from sqlalchemy import or_
from zope.interface import implementer
-
+@public
@implementer(IRoster)
class AbstractRoster:
"""An abstract IRoster class.
@@ -139,7 +128,7 @@ class AbstractRoster:
return memberships
-
+@public
class MemberRoster(AbstractRoster):
"""Return all the members of a list."""
@@ -147,7 +136,7 @@ class MemberRoster(AbstractRoster):
role = MemberRole.member
-
+@public
class NonmemberRoster(AbstractRoster):
"""Return all the nonmembers of a list."""
@@ -155,7 +144,7 @@ class NonmemberRoster(AbstractRoster):
role = MemberRole.nonmember
-
+@public
class OwnerRoster(AbstractRoster):
"""Return all the owners of a list."""
@@ -163,7 +152,7 @@ class OwnerRoster(AbstractRoster):
role = MemberRole.owner
-
+@public
class ModeratorRoster(AbstractRoster):
"""Return all the owners of a list."""
@@ -171,7 +160,7 @@ class ModeratorRoster(AbstractRoster):
role = MemberRole.moderator
-
+@public
class AdministratorRoster(AbstractRoster):
"""Return all the administrators of a list."""
@@ -195,7 +184,7 @@ class AdministratorRoster(AbstractRoster):
Member.address_id == Address.id).one_or_none()
-
+@public
class DeliveryMemberRoster(AbstractRoster):
"""Return all the members having a particular kind of delivery."""
@@ -219,13 +208,14 @@ class DeliveryMemberRoster(AbstractRoster):
:rtype: generator
"""
results = store.query(Member).filter_by(
- list_id = self._mlist.list_id,
- role = MemberRole.member)
+ list_id=self._mlist.list_id,
+ role=MemberRole.member)
for member in results:
if member.delivery_mode in delivery_modes:
yield member
+@public
class RegularMemberRoster(DeliveryMemberRoster):
"""Return all the regular delivery members of a list."""
@@ -237,7 +227,7 @@ class RegularMemberRoster(DeliveryMemberRoster):
yield from self._get_members(DeliveryMode.regular)
-
+@public
class DigestMemberRoster(DeliveryMemberRoster):
"""Return all the regular delivery members of a list."""
@@ -252,7 +242,7 @@ class DigestMemberRoster(DeliveryMemberRoster):
DeliveryMode.summary_digests)
-
+@public
class Subscribers(AbstractRoster):
"""Return all subscribed members regardless of their role."""
@@ -260,10 +250,10 @@ class Subscribers(AbstractRoster):
@dbconnection
def _query(self, store):
- return store.query(Member).filter_by(list_id = self._mlist.list_id)
+ return store.query(Member).filter_by(list_id=self._mlist.list_id)
-
+@public
@implementer(IRoster)
class Memberships:
"""A roster of a single user's memberships."""