Index: export-aliases.py =================================================================== RCS file: /cvs/fedora/fedora-accounts/export-aliases.py,v retrieving revision 1.9 diff -u -r1.9 export-aliases.py --- export-aliases.py 8 Oct 2006 20:26:39 -0000 1.9 +++ export-aliases.py 13 Jun 2007 02:11:44 -0000 @@ -3,7 +3,6 @@ import sys, os, errno import website import getopt -import re opts, args = getopt.getopt(sys.argv[1:], '', ('usage', 'help')) if len(args) != 3 or ('--usage','') in opts or ('--help','') in opts: @@ -36,7 +35,8 @@ while 1: arow = dbc.fetchone() if not arow: break - if re.compile("^[A-Z0-9._-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$", re.IGNORECASE).match(arow[1]): + x = arow[1].find('@') + if x >= 0 and arow[1][x:] != ('@' + local_domain): fh_aliases_new.write('%s: %s\n' % (arow[0], arow[1])) fh_aliases_new.write('%s: %s\n' % (arow[2].replace(' ', '.').lower(), arow[0])) Index: export-shell-accounts.sh =================================================================== RCS file: /cvs/fedora/fedora-accounts/export-shell-accounts.sh,v retrieving revision 1.8 diff -u -r1.8 export-shell-accounts.sh --- export-shell-accounts.sh 2 Mar 2007 20:55:51 -0000 1.8 +++ export-shell-accounts.sh 13 Jun 2007 02:11:44 -0000 @@ -1,6 +1,6 @@ #!/bin/sh -for I in buildsign build cvs main web fpserv all; do +for I in buildsign build cvs main web fpserv torrent all bastion; do mkdir -p /var/www/html/admin/accounts/shell-accounts-$I done ESA=/var/www/html/admin/accounts/export-shell-accounts.py @@ -11,8 +11,10 @@ $ESA /var/www/html/admin/accounts/shell-accounts-all sysadmin-build sysadmin-cvs sysadmin-main sysadmin-web $ESA /var/www/html/admin/accounts/shell-accounts-buildsign sysadmin-build sysadmin-main extras_signers $ESA /var/www/html/admin/accounts/shell-accounts-fpserv sysadmin-web sysadmin-main extras_signers +$ESA /var/www/html/admin/accounts/shell-accounts-bastion sysadmin-web sysadmin-main sysadmin-general sysadmin-build sysadmin-cvs +$ESA /var/www/html/admin/accounts/shell-accounts-torrent sysadmin-web sysadmin-main torrentadmin -for I in buildsign build cvs main web fpserv all; do +for I in buildsign build cvs main web fpserv torrent all bastion; do pushd /var/www/html/admin/accounts/shell-accounts-$I &> /dev/null || exit 1 tar -czf /var/www/html/admin/accounts/shell-accounts-$I.tar.gz.new . popd &> /dev/null Index: reset-password.cgi =================================================================== RCS file: /cvs/fedora/fedora-accounts/reset-password.cgi,v retrieving revision 1.8 diff -u -r1.8 reset-password.cgi --- reset-password.cgi 11 Jul 2006 09:13:08 -0000 1.8 +++ reset-password.cgi 13 Jun 2007 02:11:44 -0000 @@ -59,24 +59,17 @@ fhr, fh = popen2.popen2("/usr/sbin/sendmail -t") fhr.close() fh.write("""To: %s <%s> -Subject: Fedora Account System Password Reset Request +Subject: Fedora password reset From: Fedora Account System <%s> -You or someone posing as you has requested that your password in the -Fedora Account System be reset. +Please go to %sreset-password.cgi?username=%s&magic=%s&timeout=%s +to retrieve a temporary password. This link is valid for the next 72 hours. -To reset your password, enter the following URL in your browser: - -%sreset-password.cgi?username=%s&magic=%s&timeout=%s - -This will issue you a temporary password. This URL is valid for 72 hours. - -If you did not request a password reset, do nothing and your password will -not be changed. +-- The Fedora administrators """ % (arow['human_name'], arow['email'], website.accounts_email, website.accounts_url, arow['username'], gen_magic(arow['username'], the_timeout), the_timeout)) fh.close() - print "A URL has been emailed to you. Please use it to retrieve a temporary password." + print "A URL has been e-mailed to you. Please click on it to retrieve a temporary password." website.print_footer("Reset password") sys.exit(0) else: @@ -88,12 +81,10 @@ else: website.print_header("Reset password") print """ -

Enter your account information to reset your password.

-
-

Username (or E-mail):

- -

Select "Reset" to have a URL emailed to you that will allow you to reset your password.

- +Enter your account information to reset your password + +Username (or E-mail):
+
""" % (username, ) Index: run-make-components.sh =================================================================== RCS file: /cvs/fedora/fedora-accounts/run-make-components.sh,v retrieving revision 1.3 diff -u -r1.3 run-make-components.sh --- run-make-components.sh 26 Feb 2007 11:52:16 -0000 1.3 +++ run-make-components.sh 13 Jun 2007 02:11:44 -0000 @@ -9,8 +9,7 @@ for I in $REPOS; do cvs -d :pserver:anonymous@cvs.fedora.redhat.com:/cvs/$I co -p owners/owners.list > $I.list 2>/dev/null - cvs -d :pserver:anonymous@cvs.fedora.redhat.com:/cvs/$I co -p owners/owners.epel.list > $I.epel.list 2>/dev/null - FILES="$FILES ${I}.list ${I}.epel.list" + FILES="$FILES ${I}.list" done $BINDIR/bz-make-components.py $FILES Index: userbox.cgi =================================================================== RCS file: /cvs/fedora/fedora-accounts/userbox.cgi,v retrieving revision 1.38 diff -u -r1.38 userbox.cgi --- userbox.cgi 27 Apr 2007 15:03:15 -0000 1.38 +++ userbox.cgi 13 Jun 2007 02:11:44 -0000 @@ -25,10 +25,10 @@ if not value or not value.strip(): return "Must be filled in" if len(value) < 8 or len(value) > 16: - return "Wrong length - must be 8-16 hex chars" + return "Wrong length - must be 8-16 hex chars" m = re.match('[0-9a-f]+', value.lower()) if not m or m.end() < len(value): - return "Invalid GPG KeyID" + return "Invalid GPG KeyID" def check_notempty_onnew(form, field_info, value, action): if action != 'create': @@ -41,7 +41,7 @@ if action != 'create' and not value: return if not value or not value.strip(): - return + return "Must be filled in" value = value.strip() keylines = value.split('\n') for keyline in keylines: @@ -91,7 +91,7 @@ {'desc':'Facsimile', 'name':'facsimile', 'maxlen':128}, {'desc':'Affiliation', 'name':'affiliation', 'maxlen':64}, {'desc':'GPG KeyID', - 'name':'gpg_keyid', 'maxlen':16, 'check':check_gpg_keyid}, + 'name':'gpg_keyid', 'maxlen':16, 'check':check_gpg_keyid}, {'desc':'SSHv2 Public Key (attach your ~/.ssh/id_dsa.pub file here)', 'name':'ssh_key', 'maxlen':2048, 'type':'file', 'check':check_sshkey, 'strip':1}, {'desc':'Password', 'name':'password', 'maxlen':20, 'check':check_notempty, 'type':'password', 'check':check_notempty_onnew, 'edit_reuse':0}, @@ -121,16 +121,16 @@ curval = fs.value elif I.get('edit_reuse', 1): curval = field_values.get(I['name'], '') - if curval is None: + if curval is None: curval = '' if I.get('strip', 0): - curval = curval.strip() + curval = curval.strip() if got_submit: cfunc = I.get('check') if cfunc: objection = cfunc(form, I, curval, action) print "" - the_desc = I['desc'] + the_desc = I['desc'] if not I.has_key('check'): the_desc += ' (optional)' if objection is not None and can_edit: @@ -141,16 +141,16 @@ print "%s: " % the_desc print "" if not can_edit: - print '%s' % (I['name'], curval, curval) - else: - if I.get('type', 'text') != 'text': + print '%s' % (I['name'], curval, curval) + else: + if I.get('type', 'text') != 'text': print '' % (I['type'], I['name'], curval) - elif I['maxlen'] >= 1024: - print '' % (I['name'], curval) - else: - print '' % (I['name'], curval, - I['maxlen'], - min(I['maxlen'], 60)) + elif I['maxlen'] >= 1024: + print '' % (I['name'], curval) + else: + print '' % (I['name'], curval, + I['maxlen'], + min(I['maxlen'], 60)) if I.has_key('notes'): print "%s" % I['notes'] print "

" @@ -168,13 +168,13 @@ if not I.get('skip_empty', 1): val = '' if form.has_key(I['name']): - fs = form[I['name']] + fs = form[I['name']] val = fs.value - if I.get('strip', 0): - val = val.strip() + if I.get('strip', 0): + val = val.strip() field_values[I['name']] = val - field_values['approval_status'] = 'approved' - field_values['username'] = field_values['username'].lower() + field_values['approval_status'] = 'approved' + field_values['username'] = field_values['username'].lower() try: dbc.execute("INSERT INTO person (username, human_name, email, gpg_keyid, ssh_key, password, comments, postal_address, affiliation, telephone, facsimile, approval_status) VALUES (%(username)s, %(human_name)s, %(email)s, %(gpg_keyid)s, %(ssh_key)s, %(password)s, %(comments)s, %(postal_address)s, %(affiliation)s, %(telephone)s, %(facsimile)s, %(approval_status)s)", field_values) @@ -196,10 +196,10 @@ if not form.has_key(Iname): value = '' else: - fs = form[Iname] + fs = form[Iname] value = fs.value - if I.get('strip', 0): - value = value.strip() + if I.get('strip', 0): + value = value.strip() if value != arow[Iname] and (not I.get('skip_empty', 1) or value): changes.append((Iname, value)) if not len(changes): @@ -247,17 +247,17 @@ username = None if action == 'edit' and (not form.has_key('username') or not form['username'].value): - username = auth_username + username = auth_username if form.has_key('username') and action != 'create': username = form['username'].value if username != auth_username and not website.have_group(dbh, auth_username, 'accounts'): - print "Here are some of the main details about this user:" + print "Here are some of the main details about this user:" - uinfo = website.get_user_info(dbh, username) - grlist = website.get_user_groups(dbh, uinfo['id'], role_status=('unapproved', 'approved')) - uinfo['grouplist'] = ' '.join(map(lambda x: '%s(%s/%s)' % (x[1], x[2], x[3]), grlist)) - print """ + uinfo = website.get_user_info(dbh, username) + grlist = website.get_user_groups(dbh, uinfo['id'], role_status=('unapproved', 'approved')) + uinfo['grouplist'] = ' '.join(map(lambda x: '%s(%s/%s)' % (x[1], x[2], x[3]), grlist)) + print """ %(username)s is %(human_name)s <%(email)s>. Their GPG key ID is %(gpg_keyid)s.

Comments: %(comments)s @@ -265,8 +265,8 @@ Member of groups: %(grouplist)s """ % uinfo - website.print_footer("Administrative Interface") - sys.exit(1) + website.print_footer("Administrative Interface") + sys.exit(1) if 0: print """ @@ -281,7 +281,7 @@ got_errors = [] if got_submit: - # Check that they can edit + # Check that they can edit for I in fields: if form.has_key(I['name']): fs = form[I['name']] @@ -303,7 +303,7 @@ print action_error do_form(form, fields, action, got_submit) if username and action=='edit': - website.handle_group_mods(dbh, form, 'userbox.cgi', username, + website.handle_group_mods(dbh, form, 'userbox.cgi', username, None, fixed_item='username', auth_username=auth_username) website.print_footer("Fedora User")