summaryrefslogtreecommitdiff
path: root/src/mailman/app/moderator.py
diff options
context:
space:
mode:
authorBarry Warsaw2015-05-02 15:39:17 -0400
committerBarry Warsaw2015-05-02 15:39:17 -0400
commit4c14f6310a56678e94130b83dedc3db4007a8078 (patch)
tree301629b97753f6e90e95f0f31b79026760f97271 /src/mailman/app/moderator.py
parent4411ee7ce6041c206e43158b8c03ba760fd19231 (diff)
downloadmailman-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.py83
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)