--- loncom/interface/lontiny.pm 2022/01/02 17:21:37 1.8.2.1 +++ loncom/interface/lontiny.pm 2022/05/27 18:10:44 1.8.2.2 @@ -2,7 +2,7 @@ # Extract domain, courseID, and symb from a shortened URL, # and switch role to a role in designated course. # -# $Id: lontiny.pm,v 1.8.2.1 2022/01/02 17:21:37 raeburn Exp $ +# $Id: lontiny.pm,v 1.8.2.2 2022/05/27 18:10:44 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -230,6 +230,18 @@ sub launch_check { my %link_info = &Apache::lonnet::tmpget($env{'form.ttoken'}); &Apache::lonnet::tmpdel($env{'form.ttoken'}); delete($env{'form.ttoken'}); + if ($link_info{'ltoken'}) { + unless (($link_info{'linkprot'}) || ($link_info{'linkkey'} ne '')) { + my %ltoken_info = &Apache::lonnet::tmpget($link_info{'ltoken'}); + if ($ltoken_info{'linkprot'}) { + $link_info{'linkprot'} = $ltoken_info{'linkprot'}; + } elsif ($ltoken_info{'linkkey'} ne '') { + $link_info{'linkkey'} = $ltoken_info{'linkkey'}; + } + } + &Apache::lonnet::tmpdel($env{'form.ltoken'}); + delete($env{'form.ltoken'}); + } if ($link_info{'linkprot'}) { ($linkprotector,$linkproturi) = split(/:/,$link_info{'linkprot'},2); if ($env{'user.linkprotector'}) { @@ -291,7 +303,7 @@ sub launch_check { } if ($deeplink ne '') { my $disallow; - my ($state,$others,$listed,$scope,$protect) = split(/,/,$deeplink); + my ($state,$others,$listed,$scope,$protect,$display,$target) = split(/,/,$deeplink); if (($protect ne 'none') && ($protect ne '')) { my ($acctype,$item) = split(/:/,$protect); if ($acctype =~ /lti(c|d)$/) { @@ -316,6 +328,9 @@ sub launch_check { if ($disallow) { if ($currdeeplinklogin eq $linkuri) { &Apache::lonnet::delenv('request.deeplink.login'); + if ($env{'request.deeplink.target'} ne '') { + &Apache::lonnet::delenv('request.deeplink.target'); + } } } else { unless ($currdeeplinklogin eq $linkuri) { @@ -334,6 +349,11 @@ sub launch_check { } } &Apache::lonnet::appenv({'request.deeplink.login' => $linkuri}); + if ($target ne '') { + &Apache::lonnet::appenv({'request.deeplink.target' => $target}); + } elsif ($env{'request.deeplink.target'} ne '') { + &Apache::lonnet::delenv('request.deeplink.target'); + } } } else { if ($linkprotector) { @@ -347,6 +367,9 @@ sub launch_check { &Apache::lonnet::delenv({'request.linkkey'}); } &Apache::lonnet::appenv({'request.deeplink.login' => $linkuri}); + if ($env{'request.deeplink.target'} ne '') { + &Apache::lonnet::delenv('request.deeplink.target'); + } } return $newlauncher; }