summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mailman/interfaces/bans.py16
-rw-r--r--src/mailman/model/bans.py5
-rw-r--r--src/mailman/rest/bans.py2
3 files changed, 9 insertions, 14 deletions
diff --git a/src/mailman/interfaces/bans.py b/src/mailman/interfaces/bans.py
index 3401f286e..72ee525d1 100644
--- a/src/mailman/interfaces/bans.py
+++ b/src/mailman/interfaces/bans.py
@@ -46,6 +46,9 @@ class IBanManager(Interface):
to an `IBanManager`. To manage global bans, adapt ``None``.
"""
+ bans = Attribute(
+ """A `QuerySequence` over all the banned emails""")
+
def ban(email):
"""Ban an email address from subscribing to a mailing list.
@@ -93,16 +96,7 @@ class IBanManager(Interface):
:rtype: bool
"""
- def find():
- """Return the sequence of baned emails
-
- :return: The list of all banned addresses.
- :rtype: list of `IBan`
- """
-
def __iter__():
- """Iterate over all banned addresses.
+ """An iterator over all the banned email addresses.
- :return: The list of all banned addresses.
- :rtype: list of `IBan`
- """
+ :return: iterator over `IBan`"""
diff --git a/src/mailman/model/bans.py b/src/mailman/model/bans.py
index 5b86c93ec..c2d6256c2 100644
--- a/src/mailman/model/bans.py
+++ b/src/mailman/model/bans.py
@@ -110,8 +110,9 @@ class BanManager:
return True
return False
+ @property
@dbconnection
- def find(self, store):
+ def bans(self, store):
"""See `IBanManager`."""
query = store.query(Ban).filter_by(list_id=self._list_id)
return QuerySequence(query)
@@ -119,4 +120,4 @@ class BanManager:
@dbconnection
def __iter__(self, store):
"""See `IBanManager`."""
- yield from store.query(Ban).filter_by(list_id=self._list_id)
+ yield from self.bans
diff --git a/src/mailman/rest/bans.py b/src/mailman/rest/bans.py
index 5cb9d51d5..ce575885b 100644
--- a/src/mailman/rest/bans.py
+++ b/src/mailman/rest/bans.py
@@ -86,7 +86,7 @@ class BannedEmails(_BannedBase, CollectionMixin):
def _get_collection(self, request):
"""See `CollectionMixin`."""
- return self.ban_manager.find()
+ return self.ban_manager.bans
def on_get(self, request, response):
"""/bans"""