From bc3ae9858e694681f9ef72be3021fe6175f3c23e Mon Sep 17 00:00:00 2001
From: bwarsaw
Date: Sun, 6 Jan 2002 04:57:38 +0000
Subject: show_pending_subs(): Slight rewording of a label. Sorry translators!
Also, in pending subscriptions listing, add a checkbox which will add the
address to the ban_list.
show_helds_overview(): Add a checkbox which will add the address to
the ban_list.
process_form(): Handle adding the address to the ban_list.
---
Mailman/Cgi/admindb.py | 46 ++++++++++++++++++++++++++++++++++------------
1 file changed, 34 insertions(+), 12 deletions(-)
diff --git a/Mailman/Cgi/admindb.py b/Mailman/Cgi/admindb.py
index 97c58e242..5f50a6da8 100644
--- a/Mailman/Cgi/admindb.py
+++ b/Mailman/Cgi/admindb.py
@@ -256,23 +256,27 @@ def show_pending_subs(mlist, form):
form.AddItem('
')
form.AddItem(Center(Header(2, _('Subscription Requests'))))
table = Table(border=2)
- table.AddRow([Center(Bold(_('User address/name'))),
+ table.AddRow([Center(Bold(_('Address/name'))),
Center(Bold(_('Your decision'))),
Center(Bold(_('Reason for refusal')))
])
for id in pendingsubs:
time, addr, fullname, passwd, digest, lang = mlist.GetRecord(id)
+ radio = RadioButtonArray(id, (_('Defer'),
+ _('Approve'),
+ _('Reject'),
+ _('Discard')),
+ values=(mm_cfg.DEFER,
+ mm_cfg.SUBSCRIBE,
+ mm_cfg.REJECT,
+ mm_cfg.DISCARD),
+ checked=0).Format()
+ if addr not in mlist.ban_list:
+ radio += '
' + CheckBox('ban-%d' % id, 1).Format() + \
+ ' ' + _('Permanently ban from this list')
table.AddRow(['%s
%s' % (addr, fullname),
- RadioButtonArray(id, (_('Defer'),
- _('Approve'),
- _('Reject'),
- _('Discard')),
- values=(mm_cfg.DEFER,
- mm_cfg.SUBSCRIBE,
- mm_cfg.REJECT,
- mm_cfg.DISCARD),
- checked=0),
- TextBox('comment-%d' % id, size=45)
+ radio,
+ TextBox('comment-%d' % id, size=40)
])
form.AddItem(table)
@@ -387,6 +391,13 @@ def show_helds_overview(mlist, form):
(0, 0, 0, 1))
left.AddRow([btns])
left.AddCellInfo(left.GetCurrentRowIndex(), 0, colspan=2)
+ if sender not in mlist.ban_list:
+ left.AddRow([
+ CheckBox('senderbanp-' + qsender, 1).Format() +
+ ' ' +
+ _("""Ban %(esender)s from ever subscribing to this
+ mailing list""")])
+ left.AddCellInfo(left.GetCurrentRowIndex(), 0, colspan=2)
right = Table(border=0)
right.AddRow([
_("""Click on the message number to view the individual
@@ -586,7 +597,7 @@ def process_form(mlist, doc, cgidata):
for k in cgidata.keys():
for prefix in ('senderaction-', 'senderpreserve-', 'senderforward-',
'senderforwardto-', 'senderfilterp-', 'senderfilter-',
- 'senderclearmodp-'):
+ 'senderclearmodp-', 'senderbanp-'):
if k.startswith(prefix):
action = k[:len(prefix)-1]
sender = unquote_plus(k[len(prefix):])
@@ -639,6 +650,10 @@ def process_form(mlist, doc, cgidata):
except Errors.NotAMemberError:
# This person's not a member any more. Oh well.
pass
+ # And should this address be banned?
+ if actions.get('senderbanp', 0):
+ if sender not in mlist.ban_list:
+ mlist.ban_list.append(sender)
# Now, do message specific actions
erroraddrs = []
for k in cgidata.keys():
@@ -659,6 +674,7 @@ def process_form(mlist, doc, cgidata):
preservekey = 'preserve-%d' % request_id
forwardkey = 'forward-%d' % request_id
forwardaddrkey = 'forward-addr-%d' % request_id
+ bankey = 'ban-%d' % request_id
# Defaults
comment = _('[No reason given]')
preserve = 0
@@ -672,6 +688,12 @@ def process_form(mlist, doc, cgidata):
forward = cgidata[forwardkey].value
if cgidata.has_key(forwardaddrkey):
forwardaddr = cgidata[forwardaddrkey].value
+ # Should we ban this address? Do this check before handling the
+ # request id because that will evict the record.
+ if cgidata.getvalue(bankey):
+ sender = mlist.GetRecord(request_id)[1]
+ if sender not in mlist.ban_list:
+ mlist.ban_list.append(sender)
# Handle the request id
try:
mlist.HandleRequest(request_id, v, comment,
--
cgit v1.2.3-70-g09d2