version 1.20, 2016/01/27 22:23:09
|
version 1.24, 2023/10/02 21:01:21
|
Line 183 sub recurse_courses {
|
Line 183 sub recurse_courses {
|
my $creator = $courseinfo{'internal.creator'}; |
my $creator = $courseinfo{'internal.creator'}; |
my $creationcontext = $courseinfo{'internal.creationcontext'}; |
my $creationcontext = $courseinfo{'internal.creationcontext'}; |
my $inst_code = $courseinfo{'internal.coursecode'}; |
my $inst_code = $courseinfo{'internal.coursecode'}; |
|
my $xlists = $courseinfo{'internal.crosslistings'}; |
my $releaserequired = $courseinfo{'internal.releaserequired'}; |
my $releaserequired = $courseinfo{'internal.releaserequired'}; |
my $uniquecode = $courseinfo{'internal.uniquecode'}; |
my $uniquecode = $courseinfo{'internal.uniquecode'}; |
$inst_code = '' if (!defined($inst_code)); |
$inst_code = '' if (!defined($inst_code)); |
Line 224 sub recurse_courses {
|
Line 225 sub recurse_courses {
|
if (($chome ne '') && ($lastaccess->{$cid} > $twodaysago)) { |
if (($chome ne '') && ($lastaccess->{$cid} > $twodaysago)) { |
$env{'request.course.id'} = $cdom.'_'.$cnum; |
$env{'request.course.id'} = $cdom.'_'.$cnum; |
$env{'request.role'} = 'cc./'.$cdom.'/'.$cnum; |
$env{'request.role'} = 'cc./'.$cdom.'/'.$cnum; |
|
$env{'request.role.adv'} = 1; |
|
|
my $readmap = 1; |
my $readmap = 1; |
($reqdmajor,$reqdminor) = &Apache::lonrelrequtils::get_release_req($cnum,$cdom, |
($reqdmajor,$reqdminor) = &Apache::lonrelrequtils::get_release_req($cnum,$cdom, |
$crstype,$readmap, |
$crstype,$readmap, |
$globals_set); |
$globals_set); |
|
delete($env{'request.role.adv'}); |
delete($env{'request.course.id'}); |
delete($env{'request.course.id'}); |
delete($env{'request.role'}); |
delete($env{'request.role'}); |
} elsif ($releaserequired) { |
} elsif ($releaserequired) { |
Line 279 sub recurse_courses {
|
Line 282 sub recurse_courses {
|
my $cc = $1; |
my $cc = $1; |
unless ($cc eq $owner) { |
unless ($cc eq $owner) { |
my ($result,$desc) = &Apache::lonnet::auto_validate_instcode($cnum,$cdom,$inst_code,$cc); |
my ($result,$desc) = &Apache::lonnet::auto_validate_instcode($cnum,$cdom,$inst_code,$cc); |
|
unless ($result eq 'valid') { |
|
if ($xlists ne '') { |
|
foreach my $xlist (split(',',$xlists)) { |
|
my ($inst_crosslist,$lcsec) = split(':',$xlist); |
|
$result = |
|
&Apache::lonnet::auto_validate_inst_crosslist($cnum,$cdom,$inst_code, |
|
$inst_crosslist,$cc); |
|
last if ($result eq 'valid'); |
|
} |
|
} |
|
} |
if ($result eq 'valid') { |
if ($result eq 'valid') { |
if (@newcoowners > 0) { |
if (@newcoowners > 0) { |
unless (grep(/^\Q$cc\E$/,@newcoowners)) { |
unless (grep(/^\Q$cc\E$/,@newcoowners)) { |
push(@newcoowners,$cc); |
push(@newcoowners,$cc); |
} |
} |
} else { |
} else { |
Line 333 sub recurse_courses {
|
Line 347 sub recurse_courses {
|
$changes{'internal.releaserequired'} = $releasereq; |
$changes{'internal.releaserequired'} = $releasereq; |
} else { |
} else { |
if ($courseinfo{'internal.releaserequired'} ne $releasereq) { |
if ($courseinfo{'internal.releaserequired'} ne $releasereq) { |
|
|
$changes{'internal.releaserequired'} = $releasereq; |
$changes{'internal.releaserequired'} = $releasereq; |
} |
} |
} |
} |
} |
} |
|
my $curruserdoms = $courseinfo{'internal.userdomains'}; |
|
my $updateduserdoms = &get_unique_domains($cdom,$cnum); |
|
if ($curruserdoms ne $updateduserdoms) { |
|
$changes{'internal.userdomains'} = $updateduserdoms; |
|
} |
if (keys(%changes)) { |
if (keys(%changes)) { |
if (&Apache::lonnet::put('environment',\%changes,$cdom,$cnum) eq 'ok') { |
if (&Apache::lonnet::put('environment',\%changes,$cdom,$cnum) eq 'ok') { |
print $fh "Course's environment.db for ".$cdom."_".$cnum." successfully updated with following entries: "; |
print $fh "Course's environment.db for ".$cdom."_".$cnum." successfully updated with following entries: "; |
Line 374 sub last_map_update {
|
Line 392 sub last_map_update {
|
return $lastupdate; |
return $lastupdate; |
} |
} |
|
|
|
sub get_unique_domains { |
|
my ($cdom,$cnum) = @_; |
|
my %classlist = &Apache::lonnet::dump('classlist',$cdom,$cnum); |
|
my (%uniquedom,$udomstr); |
|
foreach my $key (keys(%classlist)) { |
|
my $udom = (split(/:/,$key))[1]; |
|
$uniquedom{$udom} = 1; |
|
} |
|
my %dumphash = |
|
&Apache::lonnet::dump('nohist_userroles',$cdom,$cnum); |
|
foreach my $entry (keys(%dumphash)) { |
|
my $udom = (split(/\:/,$entry))[2]; |
|
$uniquedom{$udom} = 1; |
|
} |
|
foreach my $udom (keys(%uniquedom)) { |
|
if (&Apache::lonnet::domain($udom) eq '') { |
|
delete($uniquedom{$udom}); |
|
} |
|
} |
|
if (keys(%uniquedom) > 0) { |
|
$udomstr = join(',',sort(keys(%uniquedom))); |
|
} |
|
return $udomstr; |
|
} |
|
|