--- loncom/lonnet/perl/lonnet.pm 2021/06/07 12:15:04 1.1458 +++ loncom/lonnet/perl/lonnet.pm 2021/06/12 21:37:36 1.1459 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.1458 2021/06/07 12:15:04 raeburn Exp $ +# $Id: lonnet.pm,v 1.1459 2021/06/12 21:37:36 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -9065,10 +9065,19 @@ sub deeplink_check { if ($symb eq $login) { $allow = 1; } - } elsif ($scope eq 'map') { -#FIXME Compare map for $env{'request.deeplink.login'} with map for $symb - } elsif ($scope eq 'rec') { -#FIXME Recurse up for $env{'request.deeplink.login'} with map for $symb + } elsif (($scope eq 'map') || ($scope eq 'rec')) { + my ($map_from_symb) = &deversion((&decode_symb($symb))[0]); + my ($map_from_login) = &deversion((&decode_symb($login))[0]); + 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 { my ($acctype,$item) = split(/:/,$access);