version 1.170, 2022/10/05 16:11:25
|
version 1.171, 2025/05/26 19:55:11
|
Line 63 my %randomizationcode; # code used to gr
|
Line 63 my %randomizationcode; # code used to gr
|
my %encurl; # URLs in this folder are supposed to be encrypted |
my %encurl; # URLs in this folder are supposed to be encrypted |
my %hiddenurl; # this URL (or complete folder) is supposed to be hidden |
my %hiddenurl; # this URL (or complete folder) is supposed to be hidden |
my %deeplinkout; # this URL (or complete folder) unavailable in deep-link session |
my %deeplinkout; # this URL (or complete folder) unavailable in deep-link session |
|
my %deeplinkonlyprot; # Link protection items used for deep-link only resources. |
my %rescount; # count of unhidden items in each map |
my %rescount; # count of unhidden items in each map |
my %mapcount; # count of unhidden maps in each map |
my %mapcount; # count of unhidden maps in each map |
|
|
Line 1186 sub traceroute {
|
Line 1187 sub traceroute {
|
} |
} |
unless (@deeplink < 2) { |
unless (@deeplink < 2) { |
$hash{'deeplinkonly_'.$rid}=join(':',map { &escape($_); } @deeplink); |
$hash{'deeplinkonly_'.$rid}=join(':',map { &escape($_); } @deeplink); |
|
my ($state,$others,$listed,$scope,$protect) = split(/,/,$deeplink[0]); |
|
if (($state eq 'only') && ($protect ne 'none') && ($protect ne '')) { |
|
my ($acctype,$item) = split(/:/,$protect); |
|
if ($acctype =~ /lti(c|d)$/) { |
|
$deeplinkonlyprot{$1}{$item} = 1; |
|
} |
|
} |
} |
} |
|
|
if (defined($hash{'conditions_'.$rid})) { |
if (defined($hash{'conditions_'.$rid})) { |
$hash{'conditions_'.$rid}=simplify( |
$hash{'conditions_'.$rid}=simplify( |
'('.$hash{'conditions_'.$rid}.')|('.$sofar.')'); |
'('.$hash{'conditions_'.$rid}.')|('.$sofar.')'); |
Line 1521 sub readmap {
|
Line 1528 sub readmap {
|
undef %hiddenurl; |
undef %hiddenurl; |
undef %encurl; |
undef %encurl; |
undef %deeplinkout; |
undef %deeplinkout; |
|
undef %deeplinkonlyprot; |
undef %rescount; |
undef %rescount; |
undef %mapcount; |
undef %mapcount; |
$retfrid=''; |
$retfrid=''; |
Line 1670 sub readmap {
|
Line 1678 sub readmap {
|
undef %hiddenurl; |
undef %hiddenurl; |
undef %encurl; |
undef %encurl; |
undef %deeplinkout; |
undef %deeplinkout; |
|
undef %deeplinkonlyprot; |
undef %rescount; |
undef %rescount; |
undef %mapcount; |
undef %mapcount; |
$errtext=''; |
$errtext=''; |
Line 1794 sub build_tmp_hashes {
|
Line 1803 sub build_tmp_hashes {
|
&accinit($uri,$short,$fn); |
&accinit($uri,$short,$fn); |
&hiddenurls(); |
&hiddenurls(); |
} |
} |
|
my ($cdom,$cnum) = split(/_/,$short); |
|
if (keys(%deeplinkonlyprot)) { |
|
my %launchers; |
|
if (ref($deeplinkonlyprot{'c'}) eq 'HASH') { |
|
if (($cdom ne '') && ($cnum ne '')) { |
|
my %crs_linkprot = &Apache::lonnet::get_course_lti($cnum,$cdom,'provider'); |
|
foreach my $num (keys(%{$deeplinkonlyprot{'c'}})) { |
|
if ((ref($crs_linkprot{$num}) eq 'HASH') && |
|
($crs_linkprot{$num}{'name'} ne '')) { |
|
push(@{$launchers{$crs_linkprot{$num}{'name'}}},'c'.$num); |
|
} |
|
} |
|
} |
|
} |
|
if (ref($deeplinkonlyprot{'d'}) eq 'HASH') { |
|
if ($cdom ne '') { |
|
my %dom_linkprot = &Apache::lonnet::get_domain_lti($cdom,'linkprot'); |
|
foreach my $num (keys(%{$deeplinkonlyprot{'d'}})) { |
|
if ((ref($dom_linkprot{$num}) eq 'HASH') && |
|
($dom_linkprot{$num}{'name'} ne '')) { |
|
push(@{$launchers{$dom_linkprot{$num}{'name'}}},'d'.$num); |
|
} |
|
} |
|
} |
|
} |
|
if (keys(%launchers)) { |
|
my $value = ''; |
|
foreach my $key (sort(keys(%launchers))) { |
|
if (ref($launchers{$key}) eq 'ARRAY') { |
|
$value .= &escape($key).':'.join(',',@{$launchers{$key}}).'&'; |
|
} |
|
} |
|
$value =~ s/&$//; |
|
&Apache::lonnet::appenv({'request.course.deeponlyprot' => $value}); |
|
} |
|
} |
$errtext .= &get_mapalias_errors(); |
$errtext .= &get_mapalias_errors(); |
# ------------------------------------------------------- Put versions into src |
# ------------------------------------------------------- Put versions into src |
foreach my $key (keys(%hash)) { |
foreach my $key (keys(%hash)) { |
Line 1834 sub build_tmp_hashes {
|
Line 1879 sub build_tmp_hashes {
|
} |
} |
|
|
# Was initial access via a deep-link? |
# Was initial access via a deep-link? |
my ($cdom,$cnum) = split(/_/,$short); |
|
if (($cdom ne '') && ($env{'request.deeplink.login'} ne '')) { |
if (($cdom ne '') && ($env{'request.deeplink.login'} ne '')) { |
my $deeplink_symb = &Apache::loncommon::deeplink_login_symb($cnum,$cdom); |
my $deeplink_symb = &Apache::loncommon::deeplink_login_symb($cnum,$cdom); |
if ($deeplink_symb) { |
if ($deeplink_symb) { |