Mercurial > p > roundup > code
view website/issues/html/user_utils.js @ 5093:9954a358da18
- allow user to recover account password using an entry in the
Alternate E-mail addresses list. See:
http://psf.upfronthosting.co.za/roundup/meta/issue564
for description. Merge request at:
https://sourceforge.net/p/roundup/code/merge-requests/1/
Patch supplied by kinggreedy. Applied/tested by John Rouillard
It makes this work:
Click "Lost your login?" link
Enter an alternate address in the email address block.
Submit.
Get an email sent to alternate address with a one time reset
url.
Go to that url.
Before patch, email with new password was sent to the
address "E-mail address" for the user and not to the
alternate address.
After the patch, the email with new password is sent
to the "validated" (against the alternate address list)
alternate address supplied by the user.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Mon, 20 Jun 2016 22:04:32 -0400 |
| parents | c2d0d3e9099d |
| children | 248b7a754412 |
line wrap: on
line source
// User Editing Utilities /** * for new users: * Depending on the input field which calls it, takes the value * and dispatches it to certain other input fields: * * address * +-> username * | `-> realname * `-> organisation */ function split_name(that) { var raw = that.value var val = trim(raw) if (val == '') { return } var username='' var realname='' var address='' switch (that.name) { case 'address': address=val break case 'username': username=val break case 'realname': realname=val break default: alert('Ooops - unknown name field '+that.name+'!') return } var the_form = that.form; function field_empty(name) { return the_form[name].value == '' } // no break statements - on purpose! switch (that.name) { case 'address': var split1 = address.split('@') if (field_empty('username')) { username = split1[0] the_form.username.value = username } if (field_empty('organisation')) { the_form.organisation.value = default_organisation(split1[1]) } case 'username': if (field_empty('realname')) { realname = Cap(username.split('.').join(' ')) the_form.realname.value = realname } case 'realname': if (field_empty('username')) { username = Cap(realname.replace(' ', '.')) the_form.username.value = username } if (the_form.firstname && the_form.lastname) { var split2 = realname.split(' ') var firstname='', lastname='' firstname = split2[0] lastname = split2.slice(1).join(' ') if (field_empty('firstname')) { the_form.firstname.value = firstname } if (field_empty('lastname')) { the_form.lastname.value = lastname } } } } function SubCap(str) { switch (str) { case 'de': case 'do': case 'da': case 'du': case 'von': return str; } if (str.toLowerCase().slice(0,2) == 'mc') { return 'Mc'+str.slice(2,3).toUpperCase()+str.slice(3).toLowerCase() } return str.slice(0,1).toUpperCase()+str.slice(1).toLowerCase() } function Cap(str) { var liz = str.split(' ') for (var i=0; i<liz.length; i++) { liz[i] = SubCap(liz[i]) } return liz.join(' ') } /** * Takes a domain name (behind the @ part of an email address) * Customise this to handle the mail domains you're interested in */ function default_organisation(orga) { switch (orga.toLowerCase()) { case 'gmx': case 'yahoo': return '' default: return orga } }
