version 1.1457, 2021/06/06 23:18:59
|
version 1.1459, 2021/06/12 21:37:36
|
Line 8441 sub allowed {
|
Line 8441 sub allowed {
|
=~/\Q$priv\E\&([^\:]*)/) { |
=~/\Q$priv\E\&([^\:]*)/) { |
my $value = $1; |
my $value = $1; |
if ($priv eq 'bre') { |
if ($priv eq 'bre') { |
if ($noblockcheck) { |
my $deeplinkblock = &deeplink_check($priv,$symb,$uri); |
|
if ($deeplinkblock) { |
|
$thisallowed = 'D'; |
|
} elsif ($noblockcheck) { |
$thisallowed.=$value; |
$thisallowed.=$value; |
} else { |
} else { |
my @blockers = &has_comm_blocking($priv,$symb,$uri,$ignorecache); |
my @blockers = &has_comm_blocking($priv,$symb,$uri,$ignorecache); |
Line 9062 sub deeplink_check {
|
Line 9065 sub deeplink_check {
|
if ($symb eq $login) { |
if ($symb eq $login) { |
$allow = 1; |
$allow = 1; |
} |
} |
} elsif ($scope eq 'map') { |
} elsif (($scope eq 'map') || ($scope eq 'rec')) { |
#FIXME Compare map for $env{'request.deeplink.login'} with map for $symb |
my ($map_from_symb) = &deversion((&decode_symb($symb))[0]); |
} elsif ($scope eq 'rec') { |
my ($map_from_login) = &deversion((&decode_symb($login))[0]); |
#FIXME Recurse up for $env{'request.deeplink.login'} with map for $symb |
if (($map_from_symb) && ($map_from_login)) { |
|
if ($map_from_symb eq $map_from_login) { |
|
$allow = 1; |
|
} elsif ($scope eq 'rec') { |
|
my @recurseup = &get_map_hierarchy($map_from_symb,$env{'request.course.id'}); |
|
if (grep(/^\Q$map_from_login\E$/,@recurseup)) { |
|
$allow = 1; |
|
} |
|
} |
|
} |
} |
} |
} else { |
} else { |
my ($acctype,$item) = split(/:/,$access); |
my ($acctype,$item) = split(/:/,$access); |