diff options
Diffstat (limited to 'src/mailman/rest/adapters.py')
| -rw-r--r-- | src/mailman/rest/adapters.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mailman/rest/adapters.py b/src/mailman/rest/adapters.py index 5cbb89bc1..792609161 100644 --- a/src/mailman/rest/adapters.py +++ b/src/mailman/rest/adapters.py @@ -31,11 +31,13 @@ from zope.component import getUtility from zope.interface import implements from mailman.app.membership import add_member, delete_member +from mailman.config import config from mailman.core.constants import system_preferences from mailman.interfaces.address import InvalidEmailAddressError from mailman.interfaces.listmanager import IListManager, NoSuchListError from mailman.interfaces.member import DeliveryMode from mailman.interfaces.membership import ISubscriptionService +from mailman.model.member import Member from mailman.utilities.passwords import make_user_friendly_password @@ -64,6 +66,17 @@ class SubscriptionService: sorted(mailing_list.members.members, key=address_of_member)) return members + def get_member(self, member_id): + """See `ISubscriptionService`.""" + members = config.db.store.find( + Member, + Member._member_id == member_id) + if members.count() == 0: + return None + else: + assert members.count() == 1, 'Too many matching members' + return members[0] + def __iter__(self): for member in self.get_members(): yield member |
