version 1.149.2.5.2.1, 2022/01/02 16:30:29
|
version 1.165, 2021/08/06 01:27:04
|
Line 42 use Safe::Hole;
|
Line 42 use Safe::Hole;
|
use Opcode; |
use Opcode; |
use Apache::lonenc; |
use Apache::lonenc; |
use Fcntl qw(:flock); |
use Fcntl qw(:flock); |
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA qw(:DEFAULT :match); |
use File::Basename; |
use File::Basename; |
|
|
|
|
Line 256 sub loadmap {
|
Line 256 sub loadmap {
|
push(@map_ids, $resource_id); |
push(@map_ids, $resource_id); |
if ($hash{'src_'.$lpc.'.'.$resource_id}) { |
if ($hash{'src_'.$lpc.'.'.$resource_id}) { |
$rescount{$lpc} ++; |
$rescount{$lpc} ++; |
if (($hash{'src_'.$lpc.'.'.$resource_id}=~/\.sequence$/) || |
if (($hash{'src_'.$lpc.'.'.$resource_id}=~/\.sequence$/) || |
($hash{'src_'.$lpc.'.'.$resource_id}=~/\.page$/)) { |
($hash{'src_'.$lpc.'.'.$resource_id}=~/\.page$/)) { |
$mapcount{$lpc} ++; |
$mapcount{$lpc} ++; |
} |
} |
} |
} |
unless ($codechecked) { |
unless ($codechecked) { |
Line 950 sub traceroute {
|
Line 950 sub traceroute {
|
@deeplink = &Apache::lonnet::EXT('resource.0.deeplink',$symb,'','','','',$cid,\@recurseup); |
@deeplink = &Apache::lonnet::EXT('resource.0.deeplink',$symb,'','','','',$cid,\@recurseup); |
} |
} |
unless (@deeplink < 2) { |
unless (@deeplink < 2) { |
$hash{'deeplinkonly_'.$rid}=join(':',map { &escape($_); } @deeplink); |
$hash{'deeplinkonly_'.$rid}=join(':',@deeplink); |
} |
} |
|
|
if (defined($hash{'conditions_'.$rid})) { |
if (defined($hash{'conditions_'.$rid})) { |
Line 1495 sub readmap {
|
Line 1495 sub readmap {
|
if ($redirect) { |
if ($redirect) { |
$retfurl = $url; |
$retfurl = $url; |
} |
} |
} |
} |
return ($retfurl,$errtext); |
return ($retfurl,$errtext); |
} |
} |
|
|
Line 1613 sub build_tmp_hashes {
|
Line 1613 sub build_tmp_hashes {
|
} |
} |
my $deeplink; |
my $deeplink; |
if ($hash{'deeplinkonly_'.$loginrid} ne '') { |
if ($hash{'deeplinkonly_'.$loginrid} ne '') { |
my @deeplinkinfo = map { &unescape($_); } split(/:/,$hash{'deeplinkonly_'.$loginrid}); |
$deeplink = $hash{'deeplinkonly_'.$loginrid}; |
unless (@deeplinkinfo < 2) { |
|
$deeplink = $deeplinkinfo[0]; |
|
} |
|
} |
} |
if ($deeplink) { |
if ($deeplink) { |
my $disallow; |
|
my ($state,$others,$listed,$scope,$protect) = split(/,/,$deeplink); |
my ($state,$others,$listed,$scope,$protect) = split(/,/,$deeplink); |
if (($protect ne 'none') && ($protect ne '')) { |
if ($others eq 'hide') { |
my ($acctype,$item) = split(/:/,$protect); |
my @recfolders; |
if ($acctype =~ /lti(c|d)$/) { |
if ($scope eq 'rec') { |
unless ($env{'request.linkprot'} eq $item.$1.':'.$env{'request.deeplink.login'}) { |
foreach my $key (keys(%hash)) { |
$disallow = 1; |
if ($key=~/^map_hierarchy_(\d+)$/) { |
} |
my $mpc = $1; |
} elsif ($acctype eq 'key') { |
my @ids = split(/,/,$hash{$key}); |
unless ($env{'request.linkkey'} eq $item) { |
if (grep(/^$deeplink_login_pc$/,@ids)) { |
$disallow = 1; |
my $idx; |
} |
foreach my $mapid (@ids) { |
} |
if ($idx) { |
} |
push(@recfolders,$mapid); |
if ($disallow) { |
} elsif ($mapid == $deeplink_login_pc) { |
&Apache::lonnet::delenv('request.deeplink.login'); |
push(@recfolders,$mapid); |
} else { |
$idx = $mapid; |
if ($others eq 'hide') { |
|
my @recfolders; |
|
if ($scope eq 'rec') { |
|
foreach my $key (keys(%hash)) { |
|
if ($key=~/^map_hierarchy_(\d+)$/) { |
|
my $mpc = $1; |
|
my @ids = split(/,/,$hash{$key}); |
|
if (grep(/^$deeplink_login_pc$/,@ids)) { |
|
my $idx; |
|
foreach my $mapid (@ids) { |
|
if ($idx) { |
|
push(@recfolders,$mapid); |
|
} elsif ($mapid == $deeplink_login_pc) { |
|
push(@recfolders,$mapid); |
|
$idx = $mapid; |
|
} |
|
} |
} |
push(@recfolders,$mpc); |
|
} |
} |
|
push(@recfolders,$mpc); |
} |
} |
} |
} |
} |
} |
foreach my $key (keys(%hash)) { |
} |
if ($key=~/^src_(.+)$/) { |
foreach my $key (keys(%hash)) { |
my $rid = $1; |
if ($key=~/^src_(.+)$/) { |
next if ($rid eq '0.0'); |
my $rid = $1; |
next if ($rid eq $loginrid); |
next if ($rid eq '0.0'); |
if ($scope ne 'res') { |
next if ($rid eq $loginrid); |
my $mapid = (split(/\./,$rid))[0]; |
if ($scope ne 'res') { |
next if ($mapid eq $deeplink_login_pc); |
my $mapid = (split(/\./,$rid))[0]; |
if ($scope eq 'rec') { |
next if ($mapid eq $deeplink_login_pc); |
next if (grep(/^$mapid$/,@recfolders)); |
if ($scope eq 'rec') { |
} |
next if (grep(/^$mapid$/,@recfolders)); |
} |
} |
$deeplinkout{$rid} = 1; |
|
} |
} |
|
$deeplinkout{$rid} = 1; |
} |
} |
} |
} |
} |
} |
&deeplinkouts(); |
|
} |
} |
|
&deeplinkouts(); |
} |
} |
} |
} |
&mapcrumbs(); |
&mapcrumbs(); |
Line 1809 sub get_mapparam {
|
Line 1789 sub get_mapparam {
|
last; |
last; |
} |
} |
} |
} |
|
my $recursechk=$usercourseprefix.'.'.$item.'___(rec).'.$what; |
|
if (defined($$useropt{$recursechk})) { |
|
return $$useropt{$recursechk}; |
|
} |
} |
} |
} |
} |
|
|
Line 1830 sub get_mapparam {
|
Line 1814 sub get_mapparam {
|
last; |
last; |
} |
} |
} |
} |
|
my $recursechk=$usercourseprefix.'.['.$cgroup.'].'.$item.'___(rec).'.$what; |
|
if (defined($$courseopt{$recursechk})) { |
|
return $$courseopt{$recursechk}; |
|
} |
} |
} |
} |
} |
|
|
Line 1851 sub get_mapparam {
|
Line 1839 sub get_mapparam {
|
last; |
last; |
} |
} |
} |
} |
|
my $recursechk=$usercourseprefix.'.['.$csec.'].'.$item.'___(rec).'.$what; |
|
if (defined($$courseopt{$recursechk})) { |
|
return $$courseopt{$recursechk}; |
|
} |
} |
} |
} |
} |
|
|
Line 1894 sub get_mapparam {
|
Line 1886 sub get_mapparam {
|
last; |
last; |
} |
} |
} |
} |
|
my $recursechk=$usercourseprefix.'.'.$item.'___(rec).'.$what; |
|
if (defined($$courseopt{$recursechk})) { |
|
return $$courseopt{$recursechk}; |
|
} |
} |
} |
} |
} |
} |
} |