--- loncom/auth/lonlogin.pm 2023/11/21 19:52:18 1.207 +++ loncom/auth/lonlogin.pm 2025/02/25 16:33:37 1.213 @@ -1,7 +1,7 @@ # The LearningOnline Network # Login Screen # -# $Id: lonlogin.pm,v 1.207 2023/11/21 19:52:18 raeburn Exp $ +# $Id: lonlogin.pm,v 1.213 2025/02/25 16:33:37 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -248,6 +248,9 @@ sub handler { } } + (undef,undef,undef,my $clientmathml,my $clientunicode,undef,my $clientmobile) = + &Apache::loncommon::decode_user_agent($r); + # # If browser sent an old cookie for which the session file had been removed # check if configuration for user's domain has a portal URL set. If so @@ -268,8 +271,12 @@ sub handler { # -------------------------------- Prevent users from attempting to login twice if ($handle ne '') { &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle); + my $args = {}; + if ($clientunicode && !$clientmathml) { + $args->{'browser.unicode'} = 1; + } my $start_page = - &Apache::loncommon::start_page('Already logged in'); + &Apache::loncommon::start_page('Already logged in','',$args); my $end_page = &Apache::loncommon::end_page(); my $dest = '/adm/roles'; @@ -380,9 +387,11 @@ sub handler { } $r->print( $start_page + .'
' .'

'.&mt('You are already logged in!').'

' .'

'.&mt('Please either [_1]continue the current session[_2] or [_3]log out[_4].', '','','','').'

' + .'
' .$end_page ); return OK; @@ -408,9 +417,6 @@ sub handler { # ----------------------------------------------------------- Process Interface $env{'form.interface'}=~s/\W//g; - (undef,undef,undef,undef,undef,undef,my $clientmobile) = - &Apache::loncommon::decode_user_agent($r); - my $iconpath= &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL')); @@ -618,17 +624,39 @@ sub handler { .'' .'' .&mt('The LearningOnline Network with CAPA') - .'' + .'' + .'' .'' + .'' + .'
' + .'

'.&mt('This LON-CAPA server is temporarily not available for login.').'

'); if ($spares) { $r->print('

'.&mt('Please attempt to login to one of the following servers:') .'

' .$spares); } - $r->print('' + $r->print('
' .'' ); return OK; @@ -812,10 +840,16 @@ ENDSAMLJS } } - $r->print(&Apache::loncommon::start_page('The LearningOnline Network with CAPA Login',$js, - { 'redirect' => [$expire,'/adm/roles'], - 'add_entries' => \%add_entries, - 'only_body' => 1,})); + my $args = { + 'redirect' => [$expire,'/adm/roles'], + 'add_entries' => \%add_entries, + 'only_body' => 1, + }; + if ($clientunicode && !$clientmathml) { + $args->{'browser.unicode'} = 1; + } + $r->print(&Apache::loncommon::start_page('The LearningOnline Network with CAPA Login', + $js,$args)); # ----------------------------------------------------------------------- Texts @@ -835,14 +869,19 @@ ENDSAMLJS 'forgotpw' => 'Forgot password?', 'newuser' => 'New User?', 'change' => 'Change?', + 'nojs' => 'Use of LON-CAPA requires Javascript to be enabled in your web browser.', ); # -------------------------------------------------- Change password field name my $forgotpw = &forgotpwdisplay(%lt); - $forgotpw .= '
' if $forgotpw; + if ($forgotpw) { + $forgotpw = ''; + } my $loginhelp = &Apache::lonauth::loginhelpdisplay($authdomain); if ($loginhelp) { - $loginhelp = ''.$lt{'help'}.'
'; + $loginhelp = ''; } # ---------------------------------------------------- Serve out DES JavaScript @@ -857,8 +896,17 @@ ENDSAMLJS .' style="margin:0 auto; padding:10px; width:90%; height: auto; background-color:#FFFFFF;">' ); + my $target = '_top'; + if ($sessiondata{'linkprot'}) { + my ($linkprotector,$deeplink) = split(/:/,$sessiondata{'linkprot'},2); + if (($deeplink eq $sessiondata{'origurl'}) && + (($sessiondata{'linkprotuser'} eq $sessiondata{'username'}.':'.$sessiondata{'domain'}) || + ($sessiondata{'linkprotuser'} eq $sessiondata{'username'}))) { + $target = '_self'; + } + } $r->print(< +
@@ -870,11 +918,13 @@ ENDSAMLJS ENDSERVERFORM my $coursecatalog; if (($showcoursecat eq '') || ($showcoursecat)) { - $coursecatalog = &coursecatalog_link($lt{'catalog'}).'
'; + $coursecatalog = ''; } my $newuserlink; if ($shownewuserlink) { - $newuserlink = &newuser_link($lt{'newuser'}).'
'; + $newuserlink = ''; } my $logintitle = '

'; - my $noscript_warning=''; + my $noscript_warning = <<"ENDNOJS"; + +
+ +
+ENDNOJS my $helpdeskscript; my $contactblock = &contactdisplay(\%lt,$servadm,$showadminmail, $authdomain,\$helpdeskscript, @@ -916,17 +975,22 @@ LFORM } $r->print(< -
+
+

$alttext +

HEADER + } else { + $r->print(''); } my $stdauthformstyle = 'inline-block'; my $ssoauthstyle = 'none'; my $sso_onclick; my $logintype; - $r->print('
'); + $r->print('
'); if ($saml_landing) { $ssoauthstyle = 'inline-block'; $stdauthformstyle = 'none'; @@ -1095,22 +1159,22 @@ $announcements

ENDTOP - my ($domainrow,$serverrow,$loadrow,$userloadrow,$versionrow); + my ($domainrow,$serverrow,$loadrow,$userloadrow,$versioninfo); $domainrow = <<"END"; - + $lt{'dom'}:  - - + +  $domain END $serverrow = <<"END"; - + $lt{'serv'}:  - +  $lonhost ($role) @@ -1119,9 +1183,9 @@ END if ($loadlim) { $loadrow = <<"END"; - + $lt{'load'}:  - +  $loadpercent $lt{'perc'} @@ -1131,9 +1195,9 @@ END if ($uloadlim) { $userloadrow = <<"END"; - + $lt{'userload'}:  - +  $userloadpercent $lt{'perc'} @@ -1141,28 +1205,24 @@ END END } if (($version ne '') && ($version ne '')) { - $versionrow = <<"END"; - - - $version - - -END + $versioninfo = "$version"; } $r->print(<
$domainrow $serverrow $loadrow $userloadrow -$versionrow
+ $versioninfo
$domainlogo
+

@@ -1338,11 +1398,12 @@ sub contactdisplay { } } if ($servadm && $showadminmail) { - $contactblock .= $$lt{'servadm'}.':
'. - ''.$servadm.'
'; + $contactblock = ''; } if ($showhelpdesk) { - $contactblock .= ''.$lt->{'helpdesk'}.'
'; + $contactblock .= ''; my $thisurl = &escape('/adm/login'); $$helpdeskscript = <<"ENDSCRIPT";