--- loncom/interface/createaccount.pm 2008/07/11 15:44:32 1.16 +++ loncom/interface/createaccount.pm 2008/07/12 14:08:58 1.17 @@ -3,7 +3,7 @@ # institutional log-in ID (institutional authentication required - localauth # or kerberos) or an e-mail address. # -# $Id: createaccount.pm,v 1.16 2008/07/11 15:44:32 raeburn Exp $ +# $Id: createaccount.pm,v 1.17 2008/07/12 14:08:58 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -127,31 +127,36 @@ sub handler { if ($sso_username ne '') { &print_header($r,$start_page); - my ($output,$msg); + my $msg; if (grep(/^sso$/,@cancreate)) { $msg = '

'.&mt('Account creation').'

'. - &mt("Although your username and password were authenticated by your institution's Single Sign On system, you do not currently have a LON-CAPA account at this institution.").'

'; - ($output, my $checkfail) = &username_check($sso_username,$domain, - $domdesc,$courseid, - $lonhost,$contact_email); + &mt("Although your username and password were authenticated by your institution's Single Sign On system, you do not currently have a LON-CAPA account at this institution.").'
'; + my ($output,$checkfail) = &username_check($sso_username,$domain, + $domdesc,$courseid, + $lonhost,$contact_email); if ($checkfail) { - $msg .= '

'.&mt('Account creation unavailable');'

'; + $msg .= '

'.&mt('Account creation unavailable').'

'; if ($checkfail eq 'username') { $msg .= ''. - &mt('A LON-CAPA account may not be created with the username you use.').''; + &mt('A LON-CAPA account may not be created with the username you use.'). + '

'.$output; } elsif ($checkfail eq 'authtoken') { - $msg .= ''.&mt('Error creating token.').''; + $msg .= ''.&mt('Error creating token.').''. + '
'.$output; } - $msg .= '

'. - &mt('Please contact the [_1] ([_2]) for assistance.',$contact_name,$contact_email); + $msg .= &mt('Please contact the [_1] ([_2]) for assistance.', + $contact_name,$contact_email).'

'. + &sso_logout_frag($r,$domain); + } else { - $msg .= &mt('To create one, use the table below to provide information about yourself (if appropriate), then click the "Create LON-CAPA account" button.'); + $msg .= '
'.&mt('To create one, use the table below to provide information about yourself (if appropriate), then click the "Create LON-CAPA account" button.').'
'.$output; } } else { - $msg .= '

'.&mt('Account creation unavailable').'

'. - ''.&mt("Although your username and password were authenticated by your institution's Single Sign On system, you do not currently have a LON-CAPA account at this institution, and you are not permitted to create one.").'

'.&mt('Please contact the [_1] ([_2]) for assistance.',$contact_name,$contact_email); + $msg = '

'.&mt('Account creation unavailable').'

'. + ''.&mt("Although your username and password were authenticated by your institution's Single Sign On system, you do not currently have a LON-CAPA account at this institution, and you are not permitted to create one.").'

'.&mt('Please contact the [_1] ([_2]) for assistance.',$contact_name,$contact_email).'
'. + &sso_logout_frag($r,$domain); } - $r->print($msg.'
'.$output); + $r->print($msg); $r->print(&Apache::loncommon::end_page()); return OK; } @@ -524,7 +529,7 @@ sub process_mailtoken { $data{'username'},$domdesc); if ($result eq 'ok') { $msg = $output; - my $shownow = localtime($now); + my $shownow = &Apache::lonlocal::locallocaltime($now); my $mailmsg = &mt('A LON-CAPA account for the institution: [_1] has been created [_2] from IP address: [_3]. If you did not perform this action or authorize it, please contact the [_4] ([_5]).',$domdesc,$shownow,$ENV{'REMOTE_ADDR'},$contact_name,$contact_email)."\n"; my $mailresult = &Apache::resetpw::send_mail($domdesc,$data{'email'}, $mailmsg,$contact_name, @@ -771,7 +776,8 @@ sub username_check { my ($userchkmsg,$checkfail); if (ref($curr_rules{$domain}) eq 'HASH') { $userchkmsg = - &Apache::loncommon::instrule_disallow_msg('username',$domdesc,1). + &Apache::loncommon::instrule_disallow_msg('username',$domdesc,1, + 'selfcreate'). &Apache::loncommon::user_rule_formats($domain,$domdesc, $curr_rules{$domain}{'username'},'username'); if ($userchkmsg) { @@ -934,9 +940,9 @@ sub linkto_email_help { my $msg; if ($contact_email ne '') { my $escuri = &HTML::Entities::encode('/adm/createaccount','&<>"'); - $msg .= '
'.&mt('You may wish to contact the [_1]LON-CAPA helpdesk[_2] for [_3].','','',$domdesc); + $msg .= '
'.&mt('You may wish to contact the [_1]LON-CAPA helpdesk[_2] for [_3].','','',$domdesc).'
'; } else { - $msg .= '
'.&mt('You may wish to send an e-mail to the LON-CAPA server administrator: [_1] for [_2].',$Apache::lonnet::perlvar{'AdminEmail'},$domdesc); + $msg .= '
'.&mt('You may wish to send an e-mail to the server administrator: [_1] for [_2].',$Apache::lonnet::perlvar{'AdminEmail'},$domdesc).'
'; } return $msg; } @@ -1050,4 +1056,25 @@ sub guest_format_check { return $format_msg; } +sub sso_logout_frag { + my ($r,$domain) = @_; + my $endsessionmsg; + if (defined($r->dir_config('lonSSOUserLogoutMessageFile_'.$domain))) { + my $msgfile = $r->dir_config('lonSSOUserLogoutMessageFile_'.$domain); + if (-e $msgfile) { + open(my $fh,"<$msgfile"); + $endsessionmsg = join('',<$fh>); + close($fh); + } + } elsif (defined($r->dir_config('lonSSOUserLogoutMessageFile'))) { + my $msgfile = $r->dir_config('lonSSOUserLogoutMessageFile'); + if (-e $msgfile) { + open(my $fh,"<$msgfile"); + $endsessionmsg = join('',<$fh>); + close($fh); + } + } + return $endsessionmsg; +} + 1;