From 9cf9893122a88efb68ca524f6bd9cfe047b02017 Mon Sep 17 00:00:00 2001 From: mailman Date: Thu, 26 Mar 1998 04:24:42 +0000 Subject: Detect when user account has no password - notify user, via web page response, that list administrator is being informed of something awry. Detect when user not a member of list and bail out immediately. Qualify except clause on .SetUserDigest() to catch the specific Already*digestedErrors. --- cgi/handle_opts | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) (limited to 'cgi') diff --git a/cgi/handle_opts b/cgi/handle_opts index 16047d68e..a29cb2463 100755 --- a/cgi/handle_opts +++ b/cgi/handle_opts @@ -25,7 +25,7 @@ if len(list_info) < 2: sys.exit(0) try: - list = maillist.MailList(list_name) + list = maillist.MailList(list_name) except: doc.AddItem(htmlformat.Header(2, "%s: No such list." % list_name)) print doc.Format() @@ -55,6 +55,9 @@ error = 0 operation = "" +if string.lower(user) not in list.members: + PrintResults("%s not a member!

" % user) + if form.has_key("unsub"): operation = "Unsubscribe" if not form.has_key("upw"): @@ -67,7 +70,10 @@ if form.has_key("unsub"): except mm_err.MMListNotReady: PrintResults("List is not functional.") except mm_err.MMNoSuchUserError: - PrintResults("You seem to already no longer be a member.

") + PrintResults("You seem to already be not a member.

") + except mm_err.MMBadUserError: + PrintResults("Your account has gone awry - " + "please contact the list administrator!

") except mm_err.MMBadPasswordError: PrintResults("That password was incorrect.

") # except: @@ -78,10 +84,18 @@ if form.has_key("unsub"): PrintResults("You have been unsubscribed.

") elif form.has_key("emailpw"): - list.MailUserPassword(user) - PrintResults("A reminder of your password has been emailed to you.

") + try: + list.MailUserPassword(user) + PrintResults("A reminder of your password " + "has been emailed to you.

") + except mm_err.MMBadUserError: + PrintResults("Your password entry has not been found. The list " + "manager is being notified.

") + elif form.has_key("changepw"): - if form.has_key('opw') and form.has_key('newpw') and form.has_key('confpw'): + if (form.has_key('opw') + and form.has_key('newpw') + and form.has_key('confpw')): try: list.ConfirmUserPassword(user, form['opw'].value) list.ChangeUserPassword(user, @@ -162,17 +176,7 @@ exactly what you did to get this error.

''' % (mm_cfg.MAILMAN_OWNER)) list.SetUserOption(user, mm_cfg.DisableMime, mime) try: list.SetUserDigest(user, digest_value) - except: - pass # Can get MMAlreadyDigested. Ignore it. + except (mm_err.MMAlreadyDigested, mm_err.MMAlreadyUndigested): + pass list.SetUserOption(user, mm_cfg.ConcealSubscription, conceal) PrintResults("You have successfully set your options.") - - - - - - - - - - -- cgit v1.3.1