version 1.195, 2022/02/24 15:51:28
|
version 1.196, 2022/05/25 18:05:56
|
Line 428 sub handler {
|
Line 428 sub handler {
|
if ($uextkey>2147483647) { $uextkey-=4294967296; }
|
if ($uextkey>2147483647) { $uextkey-=4294967296; }
|
|
|
# -------------------------------------------------------- Store away log token
|
# -------------------------------------------------------- Store away log token
|
my ($tokenextras,$tokentype);
|
my ($tokenextras,$tokentype,$linkprot_for_login);
|
my @names = ('role','symb','iptoken','ltoken','linkprot','linkkey');
|
my @names = ('role','symb','iptoken','ltoken','linkprot','linkkey');
|
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') {
|
my %info = &Apache::lonnet::tmpget($env{'form.'.$name});
|
my %info = &Apache::lonnet::tmpget($env{'form.'.$name});
|
if ($info{'linkprot'}) {
|
if ($info{'linkprot'}) {
|
|
$linkprot_for_login = $info{'linkprot'};
|
$tokenextras .= '&linkprot='.&escape($info{'linkprot'});
|
$tokenextras .= '&linkprot='.&escape($info{'linkprot'});
|
$tokentype = 'link';
|
$tokentype = 'link';
|
last;
|
last;
|
Line 442 sub handler {
|
Line 443 sub handler {
|
} 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')) {
|
|
if (($env{'form.retry'}) && (!$env{'form.ltoken'}) && ($name eq 'linkprot')) {
|
|
$linkprot_for_login = $env{'form.linkprot'};
|
|
}
|
$tokentype = 'link';
|
$tokentype = 'link';
|
}
|
}
|
}
|
}
|
Line 898 ENDSAML
|
Line 902 ENDSAML
|
delete($env{'form.ltoken'});
|
delete($env{'form.ltoken'});
|
}
|
}
|
}
|
}
|
|
my $in_frame_js;
|
|
if ($linkprot_for_login) {
|
|
my ($linkprotector,$linkproturi) = split(/:/,$linkprot_for_login,2);
|
|
if (($linkprotector =~ /^\d+(c|d)$/) && ($linkproturi =~ m{^/+tiny/+$LONCAPA::match_domain/+\w+$})) {
|
|
my $set_target;
|
|
if ($env{'form.retry'}) {
|
|
if ($linkproturi eq $env{'form.firsturl'}) {
|
|
$set_target = " document.server.target = '_self';";
|
|
}
|
|
} else {
|
|
$set_target = <<ENDTARG;
|
|
var linkproturi = '$linkproturi';
|
|
var path = document.location.pathname.replace( new RegExp('^/adm/launch'),'');
|
|
if (linkproturi == path) {
|
|
document.server.target = '_self';
|
|
}
|
|
ENDTARG
|
|
}
|
|
$in_frame_js = <<ENDJS;
|
|
<script type="text/javascript">
|
|
// <![CDATA[
|
|
if ((window.self !== window.top) && (document.server.target != '_self')) {
|
|
$set_target
|
|
}
|
|
// ]]>
|
|
</script>
|
|
ENDJS
|
|
}
|
|
}
|
|
|
$r->print(<<ENDLOGIN);
|
$r->print(<<ENDLOGIN);
|
<div style="display:$stdauthformstyle;" id="LC_standard_login">
|
<div style="display:$stdauthformstyle;" id="LC_standard_login">
|