diff options
| author | Barry Warsaw | 2015-05-02 15:39:17 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2015-05-02 15:39:17 -0400 |
| commit | 4c14f6310a56678e94130b83dedc3db4007a8078 (patch) | |
| tree | 301629b97753f6e90e95f0f31b79026760f97271 /src/mailman/app/moderator.py | |
| parent | 4411ee7ce6041c206e43158b8c03ba760fd19231 (diff) | |
| download | mailman-4c14f6310a56678e94130b83dedc3db4007a8078.tar.gz mailman-4c14f6310a56678e94130b83dedc3db4007a8078.tar.zst mailman-4c14f6310a56678e94130b83dedc3db4007a8078.zip | |
Remove old APIs handle_subscription() and hold_subscription().
Diffstat (limited to 'src/mailman/app/moderator.py')
| -rw-r--r-- | src/mailman/app/moderator.py | 83 |
1 files changed, 3 insertions, 80 deletions
diff --git a/src/mailman/app/moderator.py b/src/mailman/app/moderator.py index a5c0d50dd..04054d5a2 100644 --- a/src/mailman/app/moderator.py +++ b/src/mailman/app/moderator.py @@ -20,10 +20,8 @@ __all__ = [ 'handle_ListDeletingEvent', 'handle_message', - 'handle_subscription', 'handle_unsubscription', 'hold_message', - 'hold_subscription', 'hold_unsubscription', 'send_rejection', ] @@ -32,19 +30,16 @@ __all__ = [ import time import logging -from email.utils import formataddr, formatdate, getaddresses, make_msgid -from mailman.app.membership import add_member, delete_member +from email.utils import formatdate, getaddresses, make_msgid +from mailman.app.membership import delete_member from mailman.config import config from mailman.core.i18n import _ from mailman.email.message import UserNotification from mailman.interfaces.action import Action -from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.listmanager import ListDeletingEvent -from mailman.interfaces.member import ( - AlreadySubscribedError, DeliveryMode, NotAMemberError) +from mailman.interfaces.member import NotAMemberError from mailman.interfaces.messages import IMessageStore from mailman.interfaces.requests import IListRequests, RequestType -from mailman.interfaces.subscriptions import RequestRecord from mailman.utilities.datetime import now from mailman.utilities.i18n import make from zope.component import getUtility @@ -194,78 +189,6 @@ def handle_message(mlist, id, action, -def hold_subscription(mlist, record): - data = dict(when=now().isoformat(), - email=record.email, - display_name=record.display_name, - delivery_mode=record.delivery_mode.name, - language=record.language) - # Now hold this request. We'll use the email address as the key. - requestsdb = IListRequests(mlist) - request_id = requestsdb.hold_request( - RequestType.subscription, record.email, data) - vlog.info('%s: held subscription request from %s', - mlist.fqdn_listname, record.email) - # Possibly notify the administrator in default list language - if mlist.admin_immed_notify: - email = record.email # XXX: seems unnecessary - subject = _( - 'New subscription request to $mlist.display_name from $email') - text = make('subauth.txt', - mailing_list=mlist, - username=record.email, - listname=mlist.fqdn_listname, - admindb_url=mlist.script_url('admindb'), - ) - # This message should appear to come from the <list>-owner so as - # to avoid any useless bounce processing. - msg = UserNotification( - mlist.owner_address, mlist.owner_address, - subject, text, mlist.preferred_language) - msg.send(mlist, tomoderators=True) - return request_id - - - -def handle_subscription(mlist, id, action, comment=None): - requestdb = IListRequests(mlist) - if action is Action.defer: - # Nothing to do. - return - elif action is Action.discard: - # Nothing to do except delete the request from the database. - pass - elif action is Action.reject: - key, data = requestdb.get_request(id) - send_rejection( - mlist, _('Subscription request'), - data['email'], - comment or _('[No reason given]'), - lang=getUtility(ILanguageManager)[data['language']]) - elif action is Action.accept: - key, data = requestdb.get_request(id) - delivery_mode = DeliveryMode[data['delivery_mode']] - email = data['email'] - display_name = data['display_name'] - language = getUtility(ILanguageManager)[data['language']] - try: - add_member( - mlist, - RequestRecord(email, display_name, delivery_mode, language)) - except AlreadySubscribedError: - # The address got subscribed in some other way after the original - # request was made and accepted. - pass - slog.info('%s: new %s, %s %s', mlist.fqdn_listname, - delivery_mode, formataddr((display_name, email)), - 'via admin approval') - else: - raise AssertionError('Unexpected action: {0}'.format(action)) - # Delete the request from the database. - requestdb.delete_request(id) - - - def hold_unsubscription(mlist, email): data = dict(email=email) requestsdb = IListRequests(mlist) |
