version 1.1496, 2022/10/19 00:03:11
|
version 1.1502, 2022/11/23 02:55:37
|
Line 2924 sub get_dom_instcats {
|
Line 2924 sub get_dom_instcats {
|
if (&auto_instcode_format($caller,$dom,\%coursecodes,\%codes, |
if (&auto_instcode_format($caller,$dom,\%coursecodes,\%codes, |
\@codetitles,\%cat_titles,\%cat_order) eq 'ok') { |
\@codetitles,\%cat_titles,\%cat_order) eq 'ok') { |
$instcats = { |
$instcats = { |
|
totcodes => $totcodes, |
codes => \%codes, |
codes => \%codes, |
codetitles => \@codetitles, |
codetitles => \@codetitles, |
cat_titles => \%cat_titles, |
cat_titles => \%cat_titles, |
Line 10333 sub assignrole {
|
Line 10334 sub assignrole {
|
if ($role =~ /^cr\//) { |
if ($role =~ /^cr\//) { |
my $cwosec=$url; |
my $cwosec=$url; |
$cwosec=~s/^\/($match_domain)\/($match_courseid)\/.*/$1\/$2/; |
$cwosec=~s/^\/($match_domain)\/($match_courseid)\/.*/$1\/$2/; |
unless (&allowed('ccr',$cwosec)) { |
if ((!&allowed('ccr',$cwosec)) && (!&allowed('ccr',$udom))) { |
my $refused = 1; |
my $refused = 1; |
if ($context eq 'requestcourses') { |
if ($context eq 'requestcourses') { |
if (($env{'user.name'} ne '') && ($env{'user.domain'} ne '')) { |
if (($env{'user.name'} ne '') && ($env{'user.domain'} ne '')) { |
Line 12468 sub count_supptools {
|
Line 12469 sub count_supptools {
|
my $chome=&homeserver($cnum,$cdom); |
my $chome=&homeserver($cnum,$cdom); |
$numexttools = 0; |
$numexttools = 0; |
unless ($chome eq 'no_host') { |
unless ($chome eq 'no_host') { |
my ($supplemental) = &get_supplemental($cnum,$cdom,$reload); |
my ($supplemental) = &Apache::loncommon::get_supplemental($cnum,$cdom,$reload); |
if (ref($supplemental) eq 'HASH') { |
if (ref($supplemental) eq 'HASH') { |
if ((ref($supplemental->{'ids'}) eq 'HASH') && (ref($supplemental->{'hidden'}) eq 'HASH')) { |
if ((ref($supplemental->{'ids'}) eq 'HASH') && (ref($supplemental->{'hidden'}) eq 'HASH')) { |
foreach my $key (keys(%{$supplemental->{'ids'}})) { |
foreach my $key (keys(%{$supplemental->{'ids'}})) { |
Line 12485 sub count_supptools {
|
Line 12486 sub count_supptools {
|
} |
} |
|
|
sub has_unhidden_suppfiles { |
sub has_unhidden_suppfiles { |
my ($cnum,$cdom,$ignorecache)=@_; |
my ($cnum,$cdom,$ignorecache,$possdel)=@_; |
my $hashid=$cnum.':'.$cdom; |
my $hashid=$cnum.':'.$cdom; |
my ($showsupp,$cached); |
my ($showsupp,$cached); |
unless ($ignorecache) { |
unless ($ignorecache) { |
Line 12494 sub has_unhidden_suppfiles {
|
Line 12495 sub has_unhidden_suppfiles {
|
unless (defined($cached)) { |
unless (defined($cached)) { |
my $chome=&homeserver($cnum,$cdom); |
my $chome=&homeserver($cnum,$cdom); |
unless ($chome eq 'no_host') { |
unless ($chome eq 'no_host') { |
my ($supplemental) = &get_supplemental($cnum,$cdom,$ignorecache); |
my ($supplemental) = &Apache::loncommon::get_supplemental($cnum,$cdom,$ignorecache,$possdel); |
if (ref($supplemental) eq 'HASH') { |
if (ref($supplemental) eq 'HASH') { |
if ((ref($supplemental->{'ids'}) eq 'HASH') && (ref($supplemental->{'hidden'}) eq 'HASH')) { |
if ((ref($supplemental->{'ids'}) eq 'HASH') && (ref($supplemental->{'hidden'}) eq 'HASH')) { |
foreach my $key (keys(%{$supplemental->{'ids'}})) { |
foreach my $key (keys(%{$supplemental->{'ids'}})) { |
Line 12517 sub has_unhidden_suppfiles {
|
Line 12518 sub has_unhidden_suppfiles {
|
return $showsupp; |
return $showsupp; |
} |
} |
|
|
sub get_supplemental { |
|
my ($cnum,$cdom,$ignorecache,$possdel)=@_; |
|
my $hashid=$cnum.':'.$cdom; |
|
my ($supplemental,$cached,$set_httprefs); |
|
unless ($ignorecache) { |
|
($supplemental,$cached) = &is_cached_new('supplemental',$hashid); |
|
} |
|
unless (defined($cached)) { |
|
my $chome=&homeserver($cnum,$cdom); |
|
unless ($chome eq 'no_host') { |
|
my ($errors,%ids,%hidden); |
|
$errors = |
|
&Apache::loncommon::recurse_supplemental($cnum,$cdom, |
|
'supplemental.sequence', |
|
$errors,$possdel,\%ids,\%hidden); |
|
$set_httprefs = 1; |
|
if ($env{'request.course.id'} eq $cdom.'_'.$cnum) { |
|
&Apache::lonnet::appenv({'request.course.suppupdated' => time}); |
|
} |
|
$supplemental = { |
|
ids => \%ids, |
|
hidden => \%hidden, |
|
}; |
|
&do_cache_new('supplemental',$hashid,$supplemental,600); |
|
} |
|
} |
|
return ($supplemental,$set_httprefs); |
|
} |
|
|
|
# |
# |
# EXT resource caching routines |
# EXT resource caching routines |
# |
# |
Line 13710 sub devalidate_suppchange_cache {
|
Line 13682 sub devalidate_suppchange_cache {
|
&devalidate_cache_new('suppchange',$hashid); |
&devalidate_cache_new('suppchange',$hashid); |
} |
} |
|
|
|
sub update_supp_caches { |
|
my ($cdom,$cnum) = @_; |
|
my %servers = &internet_dom_servers($cdom); |
|
my @ids=¤t_machine_ids(); |
|
foreach my $server (keys(%servers)) { |
|
next if (grep(/^\Q$server\E$/,@ids)); |
|
my $hashid=$cnum.':'.$cdom; |
|
my $cachekey = &escape('showsupp').':'.&escape($hashid); |
|
&remote_devalidate_cache($server,[$cachekey]); |
|
} |
|
&has_unhidden_suppfiles($cnum,$cdom,1,1); |
|
&count_supptools($cnum,$cdom,1); |
|
my $now = time; |
|
if ($env{'request.course.id'} eq $cdom.'_'.$cnum) { |
|
&Apache::lonnet::appenv({'request.course.suppupdated' => $now}); |
|
} |
|
&put('environment',{'internal.supplementalchange' => $now}, |
|
$cdom,$cnum); |
|
&Apache::lonnet::appenv( |
|
{'course.'.$cdom.'_'.$cnum.'.internal.supplementalchange' => $now}); |
|
&do_cache_new('suppchange',$cdom.'_'.$cnum,$now,600); |
|
} |
|
|
# ------------------------------------------------- Update symbolic store links |
# ------------------------------------------------- Update symbolic store links |
|
|
sub symblist { |
sub symblist { |