version 1.10, 2008/10/04 00:09:18
|
version 1.15, 2009/02/23 20:28:21
|
Line 1
|
Line 1
|
# The LearningOnline Network |
# The LearningOnline Network |
# Allow access to password changing via a token sent to user's e-mail. |
# Allow access to password changing via a token sent to user's e-mail. |
# |
# |
|
# $Id$ |
|
# |
# Copyright Michigan State University Board of Trustees |
# Copyright Michigan State University Board of Trustees |
# |
# |
# This file is part of the LearningOnline Network with CAPA (LON-CAPA). |
# This file is part of the LearningOnline Network with CAPA (LON-CAPA). |
Line 58 sub handler {
|
Line 60 sub handler {
|
{ |
{ |
'no_inline_link' => 1,}); |
'no_inline_link' => 1,}); |
$r->print($start_page); |
$r->print($start_page); |
$r->print(&mt('<h3>'.&mt('Reset forgotten LON-CAPA password').'</h3>')); |
$r->print('<h3>'.&mt('Reset forgotten LON-CAPA password').'</h3>'); |
my $output; |
my $output; |
if ($token) { |
if ($token) { |
$output = &reset_passwd($r,$token,$contact_name,$contact_email); |
$output = &reset_passwd($r,$token,$contact_name,$contact_email); |
Line 118 sub get_uname {
|
Line 120 sub get_uname {
|
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
unam => 'username', |
unam => 'username', |
udom => 'domain', |
udom => 'domain', |
uemail => 'Email address in LON-CAPA', |
uemail => 'E-mail address in LON-CAPA', |
proc => 'Proceed'); |
proc => 'Proceed'); |
|
|
my $msg = &mt('If you use the same account for other campus services besides LON-CAPA, (e.g., e-mail, course registration, etc.), a separate centrally managed mechanism likely exists to reset a password. However, if your account is used for just LON-CAPA access you will probably be able to reset a password from this page.'); |
my $msg = &mt('If you use the same account for other campus services besides LON-CAPA, (e.g., e-mail, course registration, etc.), a separate centrally managed mechanism likely exists to reset a password. However, if your account is used for just LON-CAPA access you will probably be able to reset a password from this page.'); |
Line 140 sub get_uname {
|
Line 142 sub get_uname {
|
<tr><td align="left">$lt{'uemail'}: </td> |
<tr><td align="left">$lt{'uemail'}: </td> |
<td><input type="text" name="useremail" size="30" /></td></tr> |
<td><input type="text" name="useremail" size="30" /></td></tr> |
<tr><td colspan="2" align="left"><br /> |
<tr><td colspan="2" align="left"><br /> |
<input type="button" value="$lt{'proc'}" onClick="document.forgotpw.submit()"></td></tr> |
<input type="submit" value="$lt{'proc'}"></td></tr> |
</table> |
</table> |
</form> |
</form> |
|; |
|; |
Line 150 sub get_uname {
|
Line 152 sub get_uname {
|
sub send_token { |
sub send_token { |
my ($uname,$udom,$email,$server,$domdesc,$contact_name, |
my ($uname,$udom,$email,$server,$domdesc,$contact_name, |
$contact_email) = @_; |
$contact_email) = @_; |
my $msg = &mt('Thank you for your request to reset the password for your |
my $msg = &mt('Thank you for your request to reset the password for your LON-CAPA account.').'<br /><br />'; |
LON-CAPA account.').'<br /><br />'; |
|
|
|
my $now = time; |
my $now = time; |
my $temppasswd = &create_passwd(); |
my $temppasswd = &create_passwd(); |
Line 165 sub send_token {
|
Line 166 sub send_token {
|
my $token = &Apache::lonnet::tmpput(\%info,$server,'resetpw'); |
my $token = &Apache::lonnet::tmpput(\%info,$server,'resetpw'); |
if ($token !~ /^error/ && $token ne 'no_such_host') { |
if ($token !~ /^error/ && $token ne 'no_such_host') { |
my $esc_token = &escape($token); |
my $esc_token = &escape($token); |
my $mailmsg = "A request was submitted on ".&Apache::lonlocal::locallocaltime(time)." for a reset of the ". |
my $showtime = &Apache::lonlocal::locallocaltime(time); |
"password for your LON-CAPA account.". |
my $reseturl = &Apache::lonnet::absolute_url().'/adm/resetpw?token='.$esc_token; |
"To complete this process please open a web browser and enter the following ". |
my $mailmsg = &mt('A request was submitted on [_1] for reset of the password for your LON-CAPA account.',$showtime).' '.&mt('To complete this process please open a web browser and enter the following URL in the address/location box: [_1]',$reseturl); |
"URL in the address/location box: ".&Apache::lonnet::absolute_url()."/adm/resetpw?token=$esc_token"; |
|
my $result = &send_mail($domdesc,$email,$mailmsg,$contact_name, |
my $result = &send_mail($domdesc,$email,$mailmsg,$contact_name, |
$contact_email); |
$contact_email); |
if ($result eq 'ok') { |
if ($result eq 'ok') { |
$msg .= &mt("An e-mail message sent to the e-mail address associated with your LON-CAPA account includes the web address for the link you should use to complete the reset process.<br /><br />The link included in the message will be valid for the next <b>two</b> hours."); |
$msg .= &mt("An e-mail sent to the e-mail address associated with your LON-CAPA account includes the web address for the link you should use to complete the reset process.<br /><br />The link included in the message will be valid for the next <b>two</b> hours."); |
} else { |
} else { |
$msg .= &mt("An error occurred when sending a message to the e-mail address associated with your LON-CAPA account. Please contact the [_1] ([_2]) for assistance.",$contact_name,$contact_email); |
$msg .= &mt("An error occurred when sending a message to the e-mail address associated with your LON-CAPA account. Please contact the [_1] ([_2]) for assistance.",$contact_name,$contact_email); |
} |
} |
Line 265 sub reset_passwd {
|
Line 265 sub reset_passwd {
|
$msg .= &mt('A problem occurred when attempting to reset the password for your account. Please contact the [_1] - (<a href="mailto:[_2]">[_2]</a>) for assistance.',$contact_name,$contact_email); |
$msg .= &mt('A problem occurred when attempting to reset the password for your account. Please contact the [_1] - (<a href="mailto:[_2]">[_2]</a>) for assistance.',$contact_name,$contact_email); |
} |
} |
} else { |
} else { |
$r->print(&mt('The token included in an email sent to you [_1] has been verified, so you may now proceed to reset the password for your LON-CAPA account.',$reqtime).'<br /><br />'); |
$r->print(&mt('The token included in an e-mail sent to you [_1] has been verified, so you may now proceed to reset the password for your LON-CAPA account.',$reqtime).'<br /><br />'); |
$r->print(&mt('Please enter the username and domain of the LON-CAPA account, and the associated e-mail address, for which you are setting a password. The new password must contain at least 7 characters.').' '.&mt('Your new password will be sent to the LON-CAPA server in an encrypted form.').'<br />'); |
$r->print(&mt('Please enter the username and domain of the LON-CAPA account, and the associated e-mail address, for which you are setting a password. The new password must contain at least 7 characters.').' '.&mt('Your new password will be sent to the LON-CAPA server in an encrypted form.').'<br />'); |
&Apache::lonpreferences::passwordchanger($r,'','reset_by_email',$token); |
&Apache::lonpreferences::passwordchanger($r,'','reset_by_email',$token); |
} |
} |