diff options
| author | bwarsaw | 1998-06-19 19:33:41 +0000 |
|---|---|---|
| committer | bwarsaw | 1998-06-19 19:33:41 +0000 |
| commit | 9a7f36b1a8820a8abf8046755dd1d0ad5a201d0e (patch) | |
| tree | b4b51ff26957d8b402cad1e84df7f745d3245cf0 /modules/Cgi/subscribe.py | |
| parent | 99f721f65906e4f2d1036da3a886426aa0ec5aea (diff) | |
| download | mailman-9a7f36b1a8820a8abf8046755dd1d0ad5a201d0e.tar.gz mailman-9a7f36b1a8820a8abf8046755dd1d0ad5a201d0e.tar.zst mailman-9a7f36b1a8820a8abf8046755dd1d0ad5a201d0e.zip | |
Diffstat (limited to 'modules/Cgi/subscribe.py')
| -rwxr-xr-x | modules/Cgi/subscribe.py | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/modules/Cgi/subscribe.py b/modules/Cgi/subscribe.py deleted file mode 100755 index aa69b959f..000000000 --- a/modules/Cgi/subscribe.py +++ /dev/null @@ -1,188 +0,0 @@ -#! /usr/bin/env python -# -# Copyright (C) 1998 by the Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -"""Process listinfo form submission, ie subscriptions or roster requests.""" - -import sys -import os, cgi, string -from regsub import gsub -import mm_utils, maillist, mm_err, mm_message, mm_cfg, mm_pending, htmlformat - -doc = htmlformat.Document() - -path = os.environ['PATH_INFO'] -list_info = mm_utils.GetPathPieces(path) -list_name = string.lower(list_info[0]) - -if len(list_info) < 1: - doc.AddItem(htmlformat.Header(2, "Error")) - doc.AddItem(htmlformat.Bold("Invalid options to CGI script.")) - print doc.Format() - sys.exit(0) - -try: - list = maillist.MailList(list_name) -except: - doc.AddItem(htmlformat.Header(2, "Error")) - doc.AddItem(htmlformat.Bold("%s: No such list." % list_name )) - print doc.Format() - sys.exit(0) - - -if not list._ready: - doc.AddItem(htmlformat.Header(2, "Error")) - doc.AddItem(htmlformat.Bold("%s: No such list." % list_name )) - print doc.Format() - list.Unlock() - sys.exit(0) - -form = cgi.FieldStorage() - -error = 0 -results = '' - -def call_script(which, pathinfo): - "A little bit of a hack to call one of the scripts..." - os.environ['PATH_INFO'] = string.join(pathinfo, '/') - file = os.path.join(mm_cfg.SCRIPTS_DIR, which) - list.Unlock() - execfile(file) - sys.exit(0) - -####### -# Preliminaries done, actual processing of the form input below. - -if (form.has_key("UserOptions") - or (form.has_key("info") and not form.has_key("email"))): - # Go to user options section. - if not form.has_key("info"): - doc.AddItem(htmlformat.Header(2, "Error")) - doc.AddItem(htmlformat.Bold("You must supply your email address.")) - doc.AddItem(list.GetMailmanFooter()) - print doc.Format() - list.Unlock() - sys.exit(0) - addr = form['info'].value - member = list.FindUser(addr) - if not list.FindUser(addr): - doc.AddItem(htmlformat.Header(2, "Error")) - doc.AddItem(htmlformat.Bold("%s has no subscribed addr <i>%s</i>." - % (list.real_name, addr))) - doc.AddItem(list.GetMailmanFooter()) - print doc.Format() - list.Unlock() - sys.exit(0) - call_script('options', [list._internal_name, member]) -if not form.has_key("email"): - error = 1 - results = results + "You must supply a valid email address.<br>" -else: - email = form["email"].value -if not form.has_key("pw") or not form.has_key("pw-conf"): - error = 1 - results = results + "You must supply a valid password, and confirm it.<br>" -else: - pw = form["pw"].value - pwc = form["pw-conf"].value - -if not error and (pw <> pwc): - error = 1 - results = results + "Your passwords did not match.<br>" - -if form.has_key("digest"): - digest = eval(form["digest"].value) - -if not list.digestable: - digest = 0 -elif not list.nondigestable: - digest = 1 - - -def PrintResults(): - replacements = list.GetStandardReplacements() - replacements['<mm-results>'] = results - output = list.ParseTags('subscribe.html', replacements) - - doc.AddItem(output) - print doc.Format() - list.Unlock() - sys.exit(0) - -if error: - PrintResults() - -else: - try: - results = results + ("Confirmation from your email address is " - "required, to prevent anyone from covertly " - "subscribing you. Instructions are being " - "sent to you at %s." % email) - if os.environ.has_key('REMOTE_HOST'): - remote = os.environ['REMOTE_HOST'] - elif os.environ.has_key('REMOTE_ADDR'): - remote = os.environ['REMOTE_ADDR'] - else: - remote = "." - if digest: - digesting = " digest" - else: - digesting = "" - cookie = mm_pending.gencookie() - mm_pending.add2pending(email, pw, digest, cookie) - list.SendTextToUser(subject = "%s -- confirmation of subscription -- request %d" % \ - (list.real_name, cookie), - recipient = email, - sender = list.GetRequestEmail(), - text = mm_pending.VERIFY_FMT % ({"email": email, - "listaddress": list.GetListEmail(), - "listname": list.real_name, - "cookie": cookie, - "requestor": remote, - "request_addr": list.GetRequestEmail()}), - - add_headers = ["Reply-to: %s" - % list.GetRequestEmail(), - "Errors-To: %s" - % list.GetAdminEmail()]) - except mm_err.MMBadEmailError: - results = results + ("Mailman won't accept the given email " - "address as a valid address. (Does it " - "have an @ in it???)<p>") - except mm_err.MMListNotReady: - results = results + ("The list is not fully functional, and " - "can not accept subscription requests.<p>") -# -# deprecating this, it might be useful if we decide to -# allow approved based subscriptions without confirmation -# -## except mm_err.MMNeedApproval, x: -## results = results + ("Subscription was <em>deferred</em> " -## "because:<br> %s<p>Your request must " -## "be approved by the list admin. " -## "You will receive email informing you " -## "of the moderator's descision when they " -## "get to your request.<p>" % x) - except mm_err.MMHostileAddress: - results = results + ("Your subscription is not allowed because " - "the email address you gave is insecure.<p>") - except mm_err.MMAlreadyAMember: - results = results + "You are already subscribed!<p>" - - -PrintResults() -list.Unlock()
\ No newline at end of file |
