version 1.103, 2021/04/29 17:45:25
|
version 1.104, 2021/06/07 19:04:20
|
Line 99 sub hash_src {
|
Line 99 sub hash_src {
|
} |
} |
|
|
sub move { |
sub move { |
my ($next,$endupmap,$direction) = @_; |
my ($next,$endupmap,$direction,$firstres) = @_; |
my $safecount=0; |
my $safecount=0; |
my $allowed=0; |
my $allowed=0; |
my $deeplinkonly=0; |
my $deeplinkonly=0; |
Line 116 sub move {
|
Line 116 sub move {
|
$allowed = 0; |
$allowed = 0; |
} else { |
} else { |
my $priv = &Apache::lonnet::allowed('bre',$url,$symb); |
my $priv = &Apache::lonnet::allowed('bre',$url,$symb); |
$allowed = (($priv eq 'F') || ($priv eq '2')); |
$allowed = (($priv eq 'F') || ($priv eq '2') || ($priv eq 'A')); |
} |
} |
$deeplinkonly = 0; |
$deeplinkonly = 0; |
if ($hash{'deeplinkonly_'.$next}) { |
if ($hash{'deeplinkonly_'.$next}) { |
Line 128 sub move {
|
Line 128 sub move {
|
$deeplinkonly = 1; |
$deeplinkonly = 1; |
} |
} |
} |
} |
} elsif ($hash{'deeplinkonly_'.$prev}) { |
} elsif (($hash{'deeplinkonly_'.$prev}) && (!$firstres)) { |
my ($value,$level) = split(/:/,$hash{'deeplinkonly_'.$prev}); |
my ($value,$level) = split(/:/,$hash{'deeplinkonly_'.$prev}); |
if ($level eq 'resource') { |
if ($level eq 'resource') { |
$deeplinkonly = 1; |
$deeplinkonly = 1; |
Line 262 sub first_accessible_resource {
|
Line 262 sub first_accessible_resource {
|
my ($name,$value) = split(/=/,$pair); |
my ($name,$value) = split(/=/,$pair); |
$args{&unescape($name)} = &unescape($value); |
$args{&unescape($name)} = &unescape($value); |
} |
} |
if (!&Apache::lonnet::allowed('bre',$url,$args{'symb'})) { |
my $priv = &Apache::lonnet::allowed('bre',$url,$args{'symb'}); |
|
my $allowed = (($priv eq 'F') || ($priv eq '2') || ($priv eq 'A')); |
|
if (!$allowed) { |
# Wow, we cannot see this ... move forward to the next one that we can see |
# Wow, we cannot see this ... move forward to the next one that we can see |
my ($newrid,$newmap)=&move($hash{'first_rid'},$hash{'first_mapurl'},'forward'); |
my ($newrid,$newmap)=&move($hash{'first_rid'},$hash{'first_mapurl'},'forward',1); |
# Build the new URL |
# Build the new URL |
my ($newmapid,$newresid)=split(/\./,$newrid); |
my ($newmapid,$newresid)=split(/\./,$newrid); |
my $symb=&Apache::lonnet::encode_symb($newmap,$newresid,$hash{'src_'.$newrid}); |
my $symb=&Apache::lonnet::encode_symb($newmap,$newresid,$hash{'src_'.$newrid}); |