version 1.158.2.13.2.7, 2022/08/30 12:28:08
|
version 1.158.2.13.2.12, 2024/09/18 16:35:51
|
Line 50 sub handler {
|
Line 50 sub handler {
|
$ENV{'REDIRECT_QUERY_STRING'}), |
$ENV{'REDIRECT_QUERY_STRING'}), |
['interface','username','domain','firsturl','localpath','localres', |
['interface','username','domain','firsturl','localpath','localres', |
'token','role','symb','iptoken','btoken','ltoken','ttoken','linkkey', |
'token','role','symb','iptoken','btoken','ltoken','ttoken','linkkey', |
'saml','sso','retry']); |
'saml','sso','retry','display']); |
|
|
# -- check if they are a migrating user |
# -- check if they are a migrating user |
if (defined($env{'form.token'})) { |
if (defined($env{'form.token'})) { |
Line 68 sub handler {
|
Line 68 sub handler {
|
$env{'form.ltoken'} = $info{'ltoken'}; |
$env{'form.ltoken'} = $info{'ltoken'}; |
} elsif ($info{'linkprot'}) { |
} elsif ($info{'linkprot'}) { |
$env{'form.linkprot'} = $info{'linkprot'}; |
$env{'form.linkprot'} = $info{'linkprot'}; |
foreach my $item ('linkprotuser','linkprotexit') { |
foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') { |
if ($info{$item} ne '') { |
if ($info{$item} ne '') { |
$env{'form.'.$item} = $info{$item}; |
$env{'form.'.$item} = $info{$item}; |
} |
} |
Line 175 sub handler {
|
Line 175 sub handler {
|
if ($env{'form.symb'}) { |
if ($env{'form.symb'}) { |
$info{'symb'} = $env{'form.symb'}; |
$info{'symb'} = $env{'form.symb'}; |
} |
} |
|
if (($env{'form.firsturl'} eq '/adm/email') && ($env{'form.display'} ne '')) { |
|
if ($env{'form.sso'}) { |
|
if ($env{'form.mailrecip'}) { |
|
$info{'display'} = &escape($env{'form.display'}); |
|
$info{'mailrecip'} = &escape($env{'form.mailrecip'}); |
|
} |
|
} else { |
|
if (($env{'form.username'}) && ($env{'form.domain'})) { |
|
$info{'display'} = &escape($env{'form.display'}); |
|
$info{'mailrecip'} = &escape($env{'form.username'}.':'.$env{'form.domain'}); |
|
} |
|
} |
|
} |
my $balancer_token = &Apache::lonnet::tmpput(\%info,$found_server); |
my $balancer_token = &Apache::lonnet::tmpput(\%info,$found_server); |
unless (($balancer_token eq 'con_lost') || ($balancer_token eq 'refused') || |
unless (($balancer_token eq 'con_lost') || ($balancer_token eq 'refused') || |
($balancer_token eq 'unknown_cmd') || ($balancer_token eq 'no_such_host')) { |
($balancer_token eq 'unknown_cmd') || ($balancer_token eq 'no_such_host')) { |
Line 186 sub handler {
|
Line 199 sub handler {
|
$link_info{'ltoken'} = $env{'form.ltoken'}; |
$link_info{'ltoken'} = $env{'form.ltoken'}; |
} elsif ($env{'form.linkprot'}) { |
} elsif ($env{'form.linkprot'}) { |
$link_info{'linkprot'} = $env{'form.linkprot'}; |
$link_info{'linkprot'} = $env{'form.linkprot'}; |
foreach my $item ('linkprotuser','linkprotexit') { |
foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') { |
if ($env{'form.'.$item} ne '') { |
if ($env{'form.'.$item} ne '') { |
$link_info{$item} = $env{'form.'.$item}; |
$link_info{$item} = $env{'form.'.$item}; |
} |
} |
Line 228 sub handler {
|
Line 241 sub handler {
|
$balcookie = $info{'balcookie'}; |
$balcookie = $info{'balcookie'}; |
&Apache::lonnet::tmpdel($env{'form.btoken'}); |
&Apache::lonnet::tmpdel($env{'form.btoken'}); |
delete($env{'form.btoken'}); |
delete($env{'form.btoken'}); |
|
if (($env{'form.firsturl'} eq '/adm/email') && |
|
(exists($info{'display'})) && (exists($info{'mailrecip'}))) { |
|
$env{'form.display'} = &unescape($info{'display'}); |
|
$env{'form.mailrecip'} = &unescape($info{'mailrecip'}); |
|
} |
} |
} |
|
|
# |
# |
Line 259 sub handler {
|
Line 277 sub handler {
|
$dest = &HTML::Entities::encode($env{'form.firsturl'},'\'"<>&'); |
$dest = &HTML::Entities::encode($env{'form.firsturl'},'\'"<>&'); |
} |
} |
if (($env{'form.ltoken'}) || ($env{'form.linkprot'})) { |
if (($env{'form.ltoken'}) || ($env{'form.linkprot'})) { |
my ($linkprot,$linkprotuser,$linkprotexit); |
my ($linkprot,$linkprotuser,$linkprotexit,$linkprotpbid,$linkprotpburl); |
if ($env{'form.ltoken'}) { |
if ($env{'form.ltoken'}) { |
my %info = &Apache::lonnet::tmpget($env{'form.ltoken'}); |
my %info = &Apache::lonnet::tmpget($env{'form.ltoken'}); |
$linkprot = $info{'linkprot'}; |
$linkprot = $info{'linkprot'}; |
Line 269 sub handler {
|
Line 287 sub handler {
|
if ($info{'linkprotexit'} ne '') { |
if ($info{'linkprotexit'} ne '') { |
$linkprotexit = $info{'linkprotexit'}; |
$linkprotexit = $info{'linkprotexit'}; |
} |
} |
|
if ($info{'linkprotpbid'} ne '') { |
|
$linkprotpbid = $info{'linkprotpbid'}; |
|
} |
|
if ($info{'linkprotpburl'} ne '') { |
|
$linkprotpburl = $info{'linkprotpburl'}; |
|
} |
} else { |
} else { |
$linkprot = $env{'form.linkprot'}; |
$linkprot = $env{'form.linkprot'}; |
$linkprotuser = $env{'form.linkprotuser'}; |
$linkprotuser = $env{'form.linkprotuser'}; |
$linkprotexit = $env{'form.linkprotexit'}; |
$linkprotexit = $env{'form.linkprotexit'}; |
|
$linkprotpbid = $env{'form.linkprotpbid'}; |
|
$linkprotpburl = $env{'form.linkprotpburl'}; |
} |
} |
if ($linkprot) { |
if ($linkprot) { |
my ($linkprotector,$deeplink) = split(/:/,$linkprot,2); |
my ($linkprotector,$deeplink) = split(/:/,$linkprot,2); |
Line 284 sub handler {
|
Line 310 sub handler {
|
linkprot => $linkprot, |
linkprot => $linkprot, |
linkprotuser => $linkprotuser, |
linkprotuser => $linkprotuser, |
linkprotexit => $linkprotexit, |
linkprotexit => $linkprotexit, |
|
linkprotpbid => $linkprotpbid, |
|
linkprotpburl => $linkprotpburl, |
); |
); |
if ($env{'form.ltoken'}) { |
if ($env{'form.ltoken'}) { |
my $delete = &Apache::lonnet::tmpdel($env{'form.ltoken'}); |
my $delete = &Apache::lonnet::tmpdel($env{'form.ltoken'}); |
Line 339 sub handler {
|
Line 367 sub handler {
|
if ($env{'form.ltoken'}) { |
if ($env{'form.ltoken'}) { |
my $delete = &Apache::lonnet::tmpdel($env{'form.ltoken'}); |
my $delete = &Apache::lonnet::tmpdel($env{'form.ltoken'}); |
} |
} |
|
if (($env{'form.firsturl'} eq '/adm/email') && ($env{'form.display'})) { |
|
if ($env{'form.mailrecip'}) { |
|
if ($env{'form.mailrecip'} eq "$env{'user.name'}:$env{'user.domain'}") { |
|
$dest .= (($dest=~/\?/)?'&':'?') . 'display='.&escape($env{'form.display'}). |
|
'&mailrecip='.&escape($env{'form.mailrecip'}); |
|
} |
|
} elsif (($env{'form.username'} eq $env{'user.name'}) && ($env{'form.domain'} eq $env{'user.domain'})) { |
|
$dest .= (($dest=~/\?/)?'&':'?') . 'display='.&escape($env{'form.display'}). |
|
'&mailrecip='.&escape("$env{'user.name'}:$env{'form.domain'}"); |
|
} |
|
} |
$r->print( |
$r->print( |
$start_page |
$start_page |
.'<p class="LC_warning">'.&mt('You are already logged in!').'</p>' |
.'<p class="LC_warning">'.&mt('You are already logged in!').'</p>' |
Line 464 sub handler {
|
Line 503 sub handler {
|
|
|
# -------------------------------------------------------- Store away log token |
# -------------------------------------------------------- Store away log token |
my ($tokenextras,$tokentype,$linkprot_for_login); |
my ($tokenextras,$tokentype,$linkprot_for_login); |
my @names = ('role','symb','iptoken','ltoken','linkprotuser','linkprotexit','linkprot','linkkey'); |
my @names = ('role','symb','iptoken','ltoken','linkprotuser','linkprotexit', |
|
'linkprot','linkkey','display','linkprotpbid','linkprotpburl'); |
foreach my $name (@names) { |
foreach my $name (@names) { |
if ($env{'form.'.$name} ne '') { |
if ($env{'form.'.$name} ne '') { |
if ($name eq 'ltoken') { |
if ($name eq 'ltoken') { |
Line 472 sub handler {
|
Line 512 sub handler {
|
if ($info{'linkprot'}) { |
if ($info{'linkprot'}) { |
$linkprot_for_login = $info{'linkprot'}; |
$linkprot_for_login = $info{'linkprot'}; |
$tokenextras .= '&linkprot='.&escape($info{'linkprot'}); |
$tokenextras .= '&linkprot='.&escape($info{'linkprot'}); |
foreach my $item ('linkprotuser','linkprotexit') { |
foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') { |
if ($info{$item}) { |
if ($info{$item}) { |
$tokenextras .= '&'.$item.'='.&escape($info{$item}); |
$tokenextras .= '&'.$item.'='.&escape($info{$item}); |
} |
} |
Line 480 sub handler {
|
Line 520 sub handler {
|
$tokentype = 'link'; |
$tokentype = 'link'; |
last; |
last; |
} |
} |
|
} elsif ($env{'form.display'} && ($env{'form.firsturl'} eq '/adm/email')) { |
|
if (($env{'form.mailrecip'}) || |
|
($env{'form.username'} =~ /^$match_username$/) && ($env{'form.domain'} =~ /^$match_domain$/)) { |
|
$tokenextras .= '&'.$name.'='.&escape($env{'form.display'}); |
|
if ($env{'form.mailrecip'}) { |
|
$tokenextras .= '&mailrecip='.&escape($env{'form.mailrecip'}); |
|
} else { |
|
$tokenextras .= '&mailrecip='.&escape($env{'form.username'}.':'.$env{'form.domain'}); |
|
} |
|
} |
} else { |
} else { |
$tokenextras .= '&'.$name.'='.&escape($env{'form.'.$name}); |
$tokenextras .= '&'.$name.'='.&escape($env{'form.'.$name}); |
if (($name eq 'linkkey') || ($name eq 'linkprot')) { |
if (($name eq 'linkkey') || ($name eq 'linkprot')) { |
Line 802 ENDSAMLJS
|
Line 852 ENDSAMLJS
|
.' style="margin:0 auto; padding:10px; width:90%; height: auto; background-color:#FFFFFF;">' |
.' 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(<<ENDSERVERFORM); |
$r->print(<<ENDSERVERFORM); |
<form name="server" action="/adm/authenticate" method="post" target="_top"> |
<form name="server" action="/adm/authenticate" method="post" target="$target"> |
<input type="hidden" name="logtoken" value="$logtoken" /> |
<input type="hidden" name="logtoken" value="$logtoken" /> |
<input type="hidden" name="serverid" value="$lonhost" /> |
<input type="hidden" name="serverid" value="$lonhost" /> |
<input type="hidden" name="uname" value="" /> |
<input type="hidden" name="uname" value="" /> |
Line 1216 sub redirect_page {
|
Line 1275 sub redirect_page {
|
$args->{'only_body'} = 1; |
$args->{'only_body'} = 1; |
} elsif ($env{'form.linkprot'}) { |
} elsif ($env{'form.linkprot'}) { |
$link_info{'linkprot'} = $env{'form.linkprot'}; |
$link_info{'linkprot'} = $env{'form.linkprot'}; |
foreach my $item ('linkprotuser','linkprotexit') { |
foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') { |
if ($env{'form.'.$item}) { |
if ($env{'form.'.$item}) { |
$link_info{$item} = $env{'form.'.$item}; |
$link_info{$item} = $env{'form.'.$item}; |
} |
} |
Line 1256 sub redirect_page {
|
Line 1315 sub redirect_page {
|
} |
} |
$url .= $querystring; |
$url .= $querystring; |
} |
} |
$args->{'redirect'} = [0,$url]; |
$args->{'redirect'} = [0,$url,'','',1]; |
my $start_page = &Apache::loncommon::start_page('Switching Server ...',undef,$args); |
my $start_page = &Apache::loncommon::start_page('Switching Server ...',undef,$args); |
my $end_page = &Apache::loncommon::end_page(); |
my $end_page = &Apache::loncommon::end_page(); |
return $start_page.$end_page; |
return $start_page.$end_page; |