--- loncom/auth/lonlogin.pm 2013/09/29 00:49:24 1.157
+++ loncom/auth/lonlogin.pm 2016/08/11 00:37:33 1.158.2.5
@@ -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.5 2016/08/11 00:37:33 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
-
-