summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbwarsaw1999-11-11 18:42:44 +0000
committerbwarsaw1999-11-11 18:42:44 +0000
commitd5332e01ace96fb2373af6952351d3594d36dc04 (patch)
tree4a1fbb0cbf11bc73e17cad65504da08a4edb241c
parentd42ce99fdcdecd63f12976a2927b850c5e0f9a89 (diff)
downloadmailman-d5332e01ace96fb2373af6952351d3594d36dc04.tar.gz
mailman-d5332e01ace96fb2373af6952351d3594d36dc04.tar.zst
mailman-d5332e01ace96fb2373af6952351d3594d36dc04.zip
main(): Ensure that the list is saved in the finally clause
HandleRequests(): Catch MMAlreadyAMember errors and print something sensible.
-rw-r--r--Mailman/Cgi/admindb.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/Mailman/Cgi/admindb.py b/Mailman/Cgi/admindb.py
index 1057173b4..819466d17 100644
--- a/Mailman/Cgi/admindb.py
+++ b/Mailman/Cgi/admindb.py
@@ -115,6 +115,7 @@ def main():
print text
sys.stdout.flush()
finally:
+ mlist.Save()
mlist.Unlock()
@@ -217,6 +218,7 @@ def PrintPostRequest(mlist, id, info, total, count, form):
def HandleRequests(mlist, doc, form):
+ erroraddrs = []
for k in form.keys():
formv = form[k]
if type(formv) == types.ListType:
@@ -239,6 +241,11 @@ def HandleRequests(mlist, doc, form):
# that's okay, it just means someone else has already updated the
# database, so just ignore this id
continue
+ except Errors.MMAlreadyAMember, v:
+ erroraddrs.append(v)
# save the list and print the results
mlist.Save()
doc.AddItem(Header(2, 'Database Updated...'))
+ if erroraddrs:
+ for addr in erroraddrs:
+ doc.AddItem(`addr` + ' is already a member<br>')