version 1.21, 2009/10/08 22:59:18
|
version 1.25, 2010/11/09 16:40:21
|
Line 31
|
Line 31
|
|
|
=head1 NAME |
=head1 NAME |
|
|
Apache::resetpw - pile of common routines |
Apache::resetpw: reset user password. |
|
|
=head1 SYNOPSIS |
=head1 SYNOPSIS |
|
|
Line 43 described at http://www.lon-capa.org.
|
Line 43 described at http://www.lon-capa.org.
|
=head1 OVERVIEW |
=head1 OVERVIEW |
|
|
A user with an e-mail address associated with his/her LON-CAPA username |
A user with an e-mail address associated with his/her LON-CAPA username |
can reset a forgotten password, using a link sent to the e-mail address |
can reset a forgotten password, using a link sent to the e-mail address |
if the authentication type for the account is "internal". |
if the authentication type for the account is "internal". |
account is "internal". |
|
|
|
=cut |
=cut |
|
|
Line 79 sub handler {
|
Line 78 sub handler {
|
my $udom = $env{'form.udom'}; |
my $udom = $env{'form.udom'}; |
my $token = $env{'form.token'}; |
my $token = $env{'form.token'}; |
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page('Reset password','', |
&Apache::loncommon::start_page('Reset password'); |
{ |
|
'no_inline_link' => 1,}); |
|
$r->print($start_page); |
$r->print($start_page); |
$r->print('<h3>'.&mt('Reset forgotten LON-CAPA password').'</h3>'); |
$r->print('<h3>'.&mt('Reset forgotten LON-CAPA password').'</h3>'); |
my $output; |
my $output; |
Line 154 sub get_uname {
|
Line 151 sub get_uname {
|
uemail => 'E-mail 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.'); |
$msg .= '<br /><br />'.&mt('Three conditions must be met:') |
$msg .= '<br /><br />'.&mt('Three conditions must be met:') |
.'<ul><li>'.&mt('An e-mail address must have previously been associated with your LON-CAPA username.').'</li>' |
.'<ul><li>'.&mt('An e-mail address must have previously been associated with your LON-CAPA username.').'</li>' |
.'<li>'.&mt('You must be able to access e-mail sent to that address.').'</li>' |
.'<li>'.&mt('You must be able to access e-mail sent to that address.').'</li>' |
Line 219 sub send_mail {
|
Line 216 sub send_mail {
|
my $requestmail = "To: $email\n". |
my $requestmail = "To: $email\n". |
"From: $contact_name <$contact_email>\n". |
"From: $contact_name <$contact_email>\n". |
"Subject: ".&mt('Your LON-CAPA account')."\n". |
"Subject: ".&mt('Your LON-CAPA account')."\n". |
|
"Content-type: text/plain\;charset=UTF-8\n". |
"\n\n".$mailmsg."\n\n". |
"\n\n".$mailmsg."\n\n". |
&mt('[_1] LON-CAPA support team',$domdesc)."\n". |
&mt('[_1] LON-CAPA support team',$domdesc)."\n". |
"$contact_email\n"; |
"$contact_email\n"; |
Line 277 sub reset_passwd {
|
Line 275 sub reset_passwd {
|
my $reqtime = &Apache::lonlocal::locallocaltime($data{'time'}); |
my $reqtime = &Apache::lonlocal::locallocaltime($data{'time'}); |
if ($now - $data{'time'} < 7200) { |
if ($now - $data{'time'} < 7200) { |
if ($env{'form.action'} eq 'verify_and_change_pass') { |
if ($env{'form.action'} eq 'verify_and_change_pass') { |
|
unless (($env{'form.uname'} eq $data{'username'}) && ($env{'form.udom'} eq $data{'domain'}) && ($env{'form.email'} eq $data{'email'})) { |
|
$msg = &generic_failure_msg($contact_name,$contact_email); |
|
return $msg; |
|
} |
my $change_failed = |
my $change_failed = |
&Apache::lonpreferences::verify_and_change_password($r,'reset_by_email',$token); |
&Apache::lonpreferences::verify_and_change_password($r,'reset_by_email',$token); |
if (!$change_failed) { |
if (!$change_failed) { |