--- loncom/auth/lonlogin.pm 2013/09/29 00:49:24 1.157 +++ loncom/auth/lonlogin.pm 2016/08/13 20:11:58 1.158.2.6 @@ -1,7 +1,7 @@ # The LearningOnline Network # Login Screen # -# $Id: lonlogin.pm,v 1.157 2013/09/29 00:49:24 raeburn Exp $ +# $Id: lonlogin.pm,v 1.158.2.6 2016/08/13 20:11:58 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -113,7 +113,10 @@ sub handler { my %sessiondata; if ($env{'form.iptoken'}) { %sessiondata = &Apache::lonnet::tmpget($env{'form.iptoken'}); - my $delete = &Apache::lonnet::tmpdel($env{'form.token'}); + unless ($sessiondata{'sessionserver'}) { + my $delete = &Apache::lonnet::tmpdel($env{'form.iptoken'}); + delete($env{'form.iptoken'}); + } } # ----------------------------------------------------------- Process Interface $env{'form.interface'}=~s/\W//g; @@ -126,6 +129,7 @@ sub handler { my $lonhost = $r->dir_config('lonHostID'); my $domain = &Apache::lonnet::default_login_domain(); + my $defdom = $domain; if ($lonhost ne '') { unless ($sessiondata{'sessionserver'}) { my $redirect = &check_loginvia($domain,$lonhost); @@ -160,11 +164,13 @@ sub handler { if ($sessiondata{'username'}) { $authusername=$sessiondata{'username'}; } else { + $env{'form.username'} = &Apache::loncommon::cleanup_html($env{'form.username'}); $authusername=($env{'form.username'}?$env{'form.username'}:''); } if ($sessiondata{'domain'}) { $authdomain=$sessiondata{'domain'}; - } else { + } else { + $env{'form.domain'} = &Apache::loncommon::cleanup_html($env{'form.domain'}); $authdomain=($env{'form.domain'}?$env{'form.domain'}:$domain); } @@ -220,6 +226,12 @@ sub handler { } $tokenextras .= '&symb='.&escape($env{'form.symb'}); } + if ($env{'form.iptoken'}) { + if (!$tokenextras) { + $tokenextras = '&&'; + } + $tokenextras .= '&iptoken='.&escape($env{'form.iptoken'}); + } my $logtoken=Apache::lonnet::reply( 'tmpput:'.$ukey.$lkey.'&'.$firsturl.$tokenextras, $lonhost); @@ -341,11 +353,7 @@ lextkey=this.document.client.elements.le initkeys(); this.document.server.elements.upass0.value - =crypted(this.document.client.elements.upass$now.value.substr(0,15)); -this.document.server.elements.upass1.value - =crypted(this.document.client.elements.upass$now.value.substr(15,15)); -this.document.server.elements.upass2.value - =crypted(this.document.client.elements.upass$now.value.substr(30,15)); + =getCrypted(this.document.client.elements.upass$now.value); this.document.client.elements.uname.value=''; this.document.client.elements.upass$now.value=''; @@ -376,6 +384,40 @@ ENDSCRIPT alink => "$alink", onload => 'javascript:enableInput();',); + my ($lonhost_in_use,$headextra,$headextra_exempt,@hosts,%defaultdomconf); + @hosts = &Apache::lonnet::current_machine_ids(); + $lonhost_in_use = $lonhost; + if (@hosts > 1) { + foreach my $hostid (@hosts) { + if (&Apache::lonnet::host_domain($hostid) eq $defdom) { + $lonhost_in_use = $hostid; + last; + } + } + } + %defaultdomconf = &Apache::loncommon::get_domainconf($defdom); + $headextra = $defaultdomconf{$defdom.'.login.headtag_'.$lonhost_in_use}; + $headextra_exempt = $defaultdomconf{$domain.'.login.headtag_exempt_'.$lonhost_in_use}; + if ($headextra) { + my $omitextra; + if ($headextra_exempt ne '') { + my @exempt = split(',',$headextra_exempt); + my $ip = $ENV{'REMOTE_ADDR'}; + if (grep(/^\Q$ip\E$/,@exempt)) { + $omitextra = 1; + } + } + unless ($omitextra) { + my $confname = $defdom.'-domainconfig'; + if ($headextra =~ m{^\Q/res/$defdom/$confname/login/headtag/$lonhost_in_use/\E}) { + my $extra = &Apache::lonnet::getfile(&Apache::lonnet::filelocation("",$headextra)); + unless ($extra eq '-1') { + $js .= "\n".$extra."\n"; + } + } + } + } + $r->print(&Apache::loncommon::start_page('The LearningOnline Network with CAPA Login',$js, { 'redirect' => [$expire,'/adm/roles'], 'add_entries' => \%add_entries, @@ -426,8 +468,6 @@ ENDSCRIPT - - @@ -478,7 +518,7 @@ LFORM $r->print(<
- The Learning Online Network with CAPA + The Learning Online Network with CAPA
HEADER } @@ -502,7 +542,7 @@ HEADER
ENDTOP if ($showmainlogo) { - $r->print(' '."\n"); + $r->print(' '."\n"); } $r->print(<