diff options
| author | Barry Warsaw | 2015-03-21 21:32:12 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2015-03-21 21:32:12 -0400 |
| commit | 783163c4e7eda6d5983bcca512db645c64dad349 (patch) | |
| tree | ae0a79ac7d8b80ad4cc5a54f003ea61d3e01f3d0 /src/mailman/app/moderator.py | |
| parent | 18b7980823d2f9d5b7b0f50596cc05e8efb845e8 (diff) | |
| download | mailman-783163c4e7eda6d5983bcca512db645c64dad349.tar.gz mailman-783163c4e7eda6d5983bcca512db645c64dad349.tar.zst mailman-783163c4e7eda6d5983bcca512db645c64dad349.zip | |
Diffstat (limited to 'src/mailman/app/moderator.py')
| -rw-r--r-- | src/mailman/app/moderator.py | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/src/mailman/app/moderator.py b/src/mailman/app/moderator.py index b55388e6a..0e4d59479 100644 --- a/src/mailman/app/moderator.py +++ b/src/mailman/app/moderator.py @@ -44,6 +44,7 @@ from mailman.interfaces.member import ( AlreadySubscribedError, DeliveryMode, 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 @@ -192,26 +193,26 @@ def handle_message(mlist, id, action, -def hold_subscription(mlist, address, display_name, password, mode, language): +def hold_subscription(mlist, record): data = dict(when=now().isoformat(), - address=address, - display_name=display_name, - password=password, - delivery_mode=mode.name, - language=language) - # Now hold this request. We'll use the address as the key. + 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, address, data) + RequestType.subscription, record.email, data) vlog.info('%s: held subscription request from %s', - mlist.fqdn_listname, address) + 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 $address') + 'New subscription request to $mlist.display_name from $email') text = make('subauth.txt', mailing_list=mlist, - username=address, + username=record.email, listname=mlist.fqdn_listname, admindb_url=mlist.script_url('admindb'), ) @@ -236,19 +237,19 @@ def handle_subscription(mlist, id, action, comment=None): elif action is Action.reject: key, data = requestdb.get_request(id) _refuse(mlist, _('Subscription request'), - data['address'], + 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']] - address = data['address'] + email = data['email'] display_name = data['display_name'] language = getUtility(ILanguageManager)[data['language']] - password = data['password'] try: - add_member(mlist, address, display_name, password, - delivery_mode, language) + 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. @@ -256,9 +257,9 @@ def handle_subscription(mlist, id, action, comment=None): else: if mlist.admin_notify_mchanges: send_admin_subscription_notice( - mlist, address, display_name, language) + mlist, email, display_name, language) slog.info('%s: new %s, %s %s', mlist.fqdn_listname, - delivery_mode, formataddr((display_name, address)), + delivery_mode, formataddr((display_name, email)), 'via admin approval') else: raise AssertionError('Unexpected action: {0}'.format(action)) @@ -267,20 +268,20 @@ def handle_subscription(mlist, id, action, comment=None): -def hold_unsubscription(mlist, address): - data = dict(address=address) +def hold_unsubscription(mlist, email): + data = dict(email=email) requestsdb = IListRequests(mlist) request_id = requestsdb.hold_request( - RequestType.unsubscription, address, data) + RequestType.unsubscription, email, data) vlog.info('%s: held unsubscription request from %s', - mlist.fqdn_listname, address) + mlist.fqdn_listname, email) # Possibly notify the administrator of the hold if mlist.admin_immed_notify: subject = _( - 'New unsubscription request from $mlist.display_name by $address') + 'New unsubscription request from $mlist.display_name by $email') text = make('unsubauth.txt', mailing_list=mlist, - address=address, + email=email, listname=mlist.fqdn_listname, admindb_url=mlist.script_url('admindb'), ) @@ -297,7 +298,7 @@ def hold_unsubscription(mlist, address): def handle_unsubscription(mlist, id, action, comment=None): requestdb = IListRequests(mlist) key, data = requestdb.get_request(id) - address = data['address'] + email = data['email'] if action is Action.defer: # Nothing to do. return @@ -306,16 +307,16 @@ def handle_unsubscription(mlist, id, action, comment=None): pass elif action is Action.reject: key, data = requestdb.get_request(id) - _refuse(mlist, _('Unsubscription request'), address, + _refuse(mlist, _('Unsubscription request'), email, comment or _('[No reason given]')) elif action is Action.accept: key, data = requestdb.get_request(id) try: - delete_member(mlist, address) + delete_member(mlist, email) except NotAMemberError: # User has already been unsubscribed. pass - slog.info('%s: deleted %s', mlist.fqdn_listname, address) + slog.info('%s: deleted %s', mlist.fqdn_listname, email) else: raise AssertionError('Unexpected action: {0}'.format(action)) # Delete the request from the database. |
