version 1.94, 2019/04/29 22:19:24
|
version 1.95, 2019/07/25 20:23:52
|
Line 39 use Apache::lonpickcourse;
|
Line 39 use Apache::lonpickcourse;
|
use lib '/home/httpd/lib/perl'; |
use lib '/home/httpd/lib/perl'; |
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA qw(:DEFAULT :match); |
|
|
|
my $registered_cleanup; |
|
my $modified_dom; |
|
|
sub get_dc_settable { |
sub get_dc_settable { |
my ($type,$cdom) = @_; |
my ($type,$cdom) = @_; |
if ($type eq 'Community') { |
if ($type eq 'Community') { |
Line 1484 sub modify_course {
|
Line 1487 sub modify_course {
|
my $putres = &Apache::lonnet::courseidput($cdom,\%crsinfo,$chome,'notime'); |
my $putres = &Apache::lonnet::courseidput($cdom,\%crsinfo,$chome,'notime'); |
if (($putres eq 'ok') && (($changed{'owner'} || $changed{'code'}))) { |
if (($putres eq 'ok') && (($changed{'owner'} || $changed{'code'}))) { |
&update_coowners($cdom,$cnum,$chome,\%settings,\%newattr); |
&update_coowners($cdom,$cnum,$chome,\%settings,\%newattr); |
|
if ($changed{'code'}) { |
|
&Apache::lonnet::devalidate_cache_new('instcats',$cdom); |
|
# Update cache of self-cataloging courses on institution's server(s). |
|
if (&Apache::lonnet::shared_institution($cdom)) { |
|
unless ($registered_cleanup) { |
|
my $handlers = $r->get_handlers('PerlCleanupHandler'); |
|
$r->set_handlers('PerlCleanupHandler' => [\&devalidate_remote_instcats,@{$handlers}]); |
|
$registered_cleanup=1; |
|
$modified_dom = $cdom; |
|
} |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
Line 2539 sub get_permission {
|
Line 2554 sub get_permission {
|
return ($allowed,\%permission); |
return ($allowed,\%permission); |
} |
} |
|
|
|
sub devalidate_remote_instcats { |
|
if ($modified_dom ne '') { |
|
my %servers = &Apache::lonnet::internet_dom_servers($modified_dom); |
|
my %thismachine; |
|
map { $thismachine{$_} = 1; } &Apache::lonnet::current_machine_ids(); |
|
if (keys(%servers)) { |
|
foreach my $server (keys(%servers)) { |
|
next if ($thismachine{$server}); |
|
&Apache::lonnet::remote_devalidate_cache($server,['instcats:'.$modified_dom]); |
|
} |
|
} |
|
$modified_dom = ''; |
|
} |
|
return; |
|
} |
|
|
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
if ($r->header_only) { |
if ($r->header_only) { |
Line 2547 sub handler {
|
Line 2578 sub handler {
|
return OK; |
return OK; |
} |
} |
|
|
|
$registered_cleanup=0; |
|
$modified_dom = ''; |
|
|
my $dom = $env{'request.role.domain'}; |
my $dom = $env{'request.role.domain'}; |
my $domdesc = &Apache::lonnet::domain($dom,'description'); |
my $domdesc = &Apache::lonnet::domain($dom,'description'); |
my ($allowed,$permission) = &get_permission($dom); |
my ($allowed,$permission) = &get_permission($dom); |