--- loncom/interface/resetpw.pm 2009/10/01 21:05:12 1.17.10.2 +++ loncom/interface/resetpw.pm 2009/10/08 19:54:37 1.20 @@ -1,7 +1,7 @@ # The LearningOnline Network # Allow access to password changing via a token sent to user's e-mail. # -# $Id: resetpw.pm,v 1.17.10.2 2009/10/01 21:05:12 raeburn Exp $ +# $Id: resetpw.pm,v 1.20 2009/10/08 19:54:37 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -87,7 +87,7 @@ sub handler { } foreach my $item (@items) { if ($item =~ /^[^\@]+\@[^\@]+\.[^\@\.]+$/) { - unless(grep(/^\Q$item\E$/,@allemails)) { + unless(grep(/^\Q$item\E$/,@allemails)) { push(@allemails,$item); } } @@ -126,8 +126,8 @@ sub handler { sub get_uname { my ($defdom) = @_; my %lt = &Apache::lonlocal::texthash( - unam => 'LON-CAPA username', - udom => 'LON-CAPA domain', + unam => 'username', + udom => 'domain', uemail => 'E-mail address in LON-CAPA', proc => 'Proceed'); @@ -141,9 +141,9 @@ sub get_uname {
+ - + @@ -271,10 +271,24 @@ sub reset_passwd { } $msg .= '

' .''.&mt('Go to the login page').'.'; + } elsif ($change_failed eq 'invalid_client') { + my $homeserver = &Apache::lonnet::homeserver($data{'username'},$data{'domain'}); + if ($homeserver eq 'no_host') { + $msg .= &generic_failure_msg($contact_name,$contact_email); + } else { + my $protocol = $Apache::lonnet::protocol{$homeserver}; + $protocol = 'http' if ($protocol ne 'https'); + my $url = $protocol.'://'.&Apache::lonnet::hostname($homeserver). + '/adm/resetpw'; + my ($opentag,$closetag); + if ($url) { + $opentag = ''; + $closetag = ''; + } + $msg .= &mt('A problem occurred when attempting to reset the password for your account. Please try again from your [_1]home server[_2].',$opentag,$closetag); + } } else { - $msg .= &mt('A problem occurred when attempting to reset the password for your account. Please contact the [_1] - ([_2]) for assistance.' - ,$contact_name - ,''.$contact_email.''); + $msg .= &generic_failure_msg($contact_name,$contact_email); } } else { $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).'

'); @@ -292,6 +306,12 @@ sub reset_passwd { return $msg; } +sub generic_failure_msg { + my ($contact_name,$contact_email) = @_; + return &mt('A problem occurred when attempting to reset the password for your account. Please contact the [_1] - ([_2]) for assistance.', + $contact_name,''.$contact_email.''); +} + sub create_passwd { my $passwd = ''; my @letts = ("a".."z");
-
$lt{'unam'}:
LON-CAPA $lt{'unam'}:
$lt{'udom'}:
LON-CAPA $lt{'udom'}: |; $msg .= &Apache::loncommon::select_dom_form($defdom,'udom'); $msg .= qq|