--- loncom/auth/lonlogin.pm 2013/01/23 15:26:37 1.154 +++ loncom/auth/lonlogin.pm 2013/09/29 00:49:24 1.157 @@ -1,7 +1,7 @@ # The LearningOnline Network # Login Screen # -# $Id: lonlogin.pm,v 1.154 2013/01/23 15:26:37 raeburn Exp $ +# $Id: lonlogin.pm,v 1.157 2013/09/29 00:49:24 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -46,7 +46,7 @@ sub handler { (join('&',$ENV{'QUERY_STRING'},$env{'request.querystring'}, $ENV{'REDIRECT_QUERY_STRING'}), ['interface','username','domain','firsturl','localpath','localres', - 'token','role','symb']); + 'token','role','symb','iptoken']); if (!defined($env{'form.firsturl'})) { &Apache::lonacc::get_posted_cgi($r,['firsturl']); } @@ -103,15 +103,23 @@ sub handler { # ---------------------------------------------------- No valid token, continue - # ---------------------------- Not possible to really login to domain "public" +# ---------------------------- Not possible to really login to domain "public" if ($env{'form.domain'} eq 'public') { $env{'form.domain'}=''; $env{'form.username'}=''; } + +# ------ Is this page requested because /adm/migrateuser detected an IP change? + my %sessiondata; + if ($env{'form.iptoken'}) { + %sessiondata = &Apache::lonnet::tmpget($env{'form.iptoken'}); + my $delete = &Apache::lonnet::tmpdel($env{'form.token'}); + } # ----------------------------------------------------------- Process Interface $env{'form.interface'}=~s/\W//g; - my $httpbrowser=$ENV{"HTTP_USER_AGENT"}; + (undef,undef,undef,undef,undef,undef,my $clientmobile) = + &Apache::loncommon::decode_user_agent(); my $iconpath= &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL')); @@ -119,17 +127,23 @@ sub handler { my $lonhost = $r->dir_config('lonHostID'); my $domain = &Apache::lonnet::default_login_domain(); if ($lonhost ne '') { - my $redirect = &check_loginvia($domain,$lonhost); - if ($redirect) { - $r->print($redirect); - return OK; - } + unless ($sessiondata{'sessionserver'}) { + my $redirect = &check_loginvia($domain,$lonhost); + if ($redirect) { + $r->print($redirect); + return OK; + } + } } - if (($env{'form.domain'}) && + if (($sessiondata{'domain'}) && + (&Apache::lonnet::domain($env{'form.domain'},'description'))) { + $domain=$sessiondata{'domain'}; + } elsif (($env{'form.domain'}) && (&Apache::lonnet::domain($env{'form.domain'},'description'))) { $domain=$env{'form.domain'}; } + my $role = $r->dir_config('lonRole'); my $loadlim = $r->dir_config('lonLoadLim'); my $uloadlim= $r->dir_config('lonUserLoadLim'); @@ -141,9 +155,18 @@ sub handler { my $host_name = &Apache::lonnet::hostname($lonhost); # --------------------------------------------- Default values for login fields - - my $authusername=($env{'form.username'}?$env{'form.username'}:''); - my $authdomain=($env{'form.domain'}?$env{'form.domain'}:$domain); + + my ($authusername,$authdomain); + if ($sessiondata{'username'}) { + $authusername=$sessiondata{'username'}; + } else { + $authusername=($env{'form.username'}?$env{'form.username'}:''); + } + if ($sessiondata{'domain'}) { + $authdomain=$sessiondata{'domain'}; + } else { + $authdomain=($env{'form.domain'}?$env{'form.domain'}:$domain); + } # ---------------------------------------------------------- Determine own load my $loadavg; @@ -433,16 +456,20 @@ ENDSERVERFORM $authdomain,\$helpdeskscript, $showhelpdesk,\@possdoms); + my $mobileargs; + if ($clientmobile) { + $mobileargs = 'autocapitalize="off" autocorrect="off"'; + } my $loginform=(< :
-
+
:

:
-
+
LFORM @@ -654,7 +681,8 @@ sub contactdisplay {