version 1.16, 2010/09/26 02:29:55
|
version 1.22, 2020/07/01 20:09:03
|
Line 110
|
Line 110
|
close($fh); |
close($fh); |
exit; |
exit; |
} |
} |
$env{'user.name'} = $dcname; |
&set_dc_env($dcname,$dcdom,$defdom); |
$env{'user.domain'} = $dcdom; |
|
$env{'request.role.domain'} = $defdom; |
|
my @permissions = ('mau','ccc','cin','cta','cep','ccr','cst'); |
my @permissions = ('mau','ccc','cin','cta','cep','ccr','cst'); |
my %permissionflags = (); |
my %permissionflags = (); |
&set_permissions(\%permissionflags,\@permissions); |
&set_permissions(\%permissionflags,\@permissions); |
my $output = &process_xml($fh,$defdom,$dcname,$dcdom); |
my $output = &process_xml($fh,$defdom,$dcname,$dcdom); |
print $output; |
|
&unset_permissions(\%permissionflags); |
&unset_permissions(\%permissionflags); |
|
&unset_dc_env(); |
|
print $output; |
} |
} |
} else { |
} else { |
my @permissions = ('mau','ccc','cin','cta','cep','ccr','cst'); |
my @permissions = ('mau','ccc','cin','cta','cep','ccr','cst'); |
Line 132
|
Line 131
|
my $settings; |
my $settings; |
if (ref($domconfig{'autocreate'}) eq 'HASH') { |
if (ref($domconfig{'autocreate'}) eq 'HASH') { |
$settings = $domconfig{'autocreate'}; |
$settings = $domconfig{'autocreate'}; |
|
my ($dcname,$dcdom); |
|
if ($settings->{'xmldc'}) { |
|
($dcname,$dcdom) = split(':',$settings->{'xmldc'}); |
|
} |
if ($settings->{'xml'}) { |
if ($settings->{'xml'}) { |
if ($settings->{'xmldc'}) { |
if ($settings->{'xmldc'}) { |
my ($dcname,$dcdom) = split(':',$settings->{'xmldc'}); |
|
$env{'user.name'} = $dcname; |
|
$env{'user.domain'} = $dcdom; |
|
$env{'request.role.domain'} = $dom; |
|
if (!&check_activedc($dcdom,$dcname,$dom)) { |
if (!&check_activedc($dcdom,$dcname,$dom)) { |
print $fh "Autocreate.pl in domain $dom configured to run under the auspices of a user without an active domain coordinator role in the domain - course creation will be skipped.\n\n"; |
print $fh "Autocreate.pl in domain $dom configured to run under the auspices of a user without an active domain coordinator role in the domain - course creation will be skipped.\n\n"; |
next; |
next; |
Line 149
|
Line 148
|
} |
} |
} |
} |
if ($settings->{'req'}) { |
if ($settings->{'req'}) { |
my $output = &Apache::loncoursequeueadmin::process_official_reqs('auto',$dom); |
&set_dc_env($dcname,$dcdom); |
|
my $output = &Apache::loncoursequeueadmin::process_official_reqs('auto',$dom,$dcname,$dcdom); |
|
&unset_dc_env(); |
if ($output) { |
if ($output) { |
print $fh $output; |
print $fh $output; |
} |
} |
Line 164
|
Line 165
|
|
|
sub process_xml { |
sub process_xml { |
my ($fh,$dom,$dcname,$dcdom) = @_; |
my ($fh,$dom,$dcname,$dcdom) = @_; |
$env{'user.name'} = $dcname; |
&set_dc_env($dcname,$dcdom,$dom); |
$env{'user.domain'} = $dcdom; |
|
$env{'request.role.domain'} = $dom; |
|
|
|
# Initialize language handler |
# Initialize language handler |
&Apache::lonlocal::get_language_handle(); |
&Apache::lonlocal::get_language_handle(); |
|
|
Line 177 sub process_xml {
|
Line 175 sub process_xml {
|
closedir(DIR); |
closedir(DIR); |
my %courseids = (); |
my %courseids = (); |
print $fh "Sending to batch - auto,$dom,$dcname,$dcdom ".join(":",@requests)."\n"; |
print $fh "Sending to batch - auto,$dom,$dcname,$dcdom ".join(":",@requests)."\n"; |
my ($result,$logmsg) = &LONCAPA::batchcreatecourse::create_courses(\@requests,\%courseids,'auto',$dom,$dcname,$dcdom); |
my ($result,$logmsg,$clonemsg,$keysmsg,$codesref,$instcodesref) = |
|
&LONCAPA::batchcreatecourse::create_courses(\@requests,\%courseids,'auto',$dom,$dcname,$dcdom); |
my $outcome; |
my $outcome; |
if ($result ne '') { |
if ($result ne '') { |
$outcome = $result."\n"; |
$outcome = $result."\n"; |
Line 185 sub process_xml {
|
Line 184 sub process_xml {
|
if ($logmsg ne '') { |
if ($logmsg ne '') { |
$outcome .= $logmsg."\n"; |
$outcome .= $logmsg."\n"; |
} |
} |
|
if ($keysmsg ne '') { |
|
$outcome .= $keysmsg."\n"; |
|
} |
|
if ($clonemsg ne '') { |
|
$outcome .= $clonemsg."\n"; |
|
} |
print $fh $outcome; |
print $fh $outcome; |
|
|
my $output; |
my $output; |
Line 211 sub process_xml {
|
Line 216 sub process_xml {
|
$output .= $newcourse.':'; |
$output .= $newcourse.':'; |
} |
} |
$output =~ s/:$//; |
$output =~ s/:$//; |
delete($env{'user.name'}); |
&unset_dc_env(); |
delete($env{'user.domain'}); |
if (ref($instcodesref) eq 'HASH') { |
delete($env{'request.role.domain'}); |
if (keys(%{$instcodesref}) > 0) { |
|
&Apache::lonnet::devalidate_cache_new('instcats',$dom); |
|
if (&Apache::lonnet::shared_institution($dom)) { |
|
my %servers = &Apache::lonnet::internet_dom_servers($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:'.$dom]); |
|
} |
|
} |
|
} |
|
} |
|
} |
return $output; |
return $output; |
} |
} |
|
|
Line 243 sub unset_permissions {
|
Line 262 sub unset_permissions {
|
delete($env{"allowed.$allowtype"}); |
delete($env{"allowed.$allowtype"}); |
} |
} |
} |
} |
|
|
|
sub set_dc_env { |
|
my ($dcname,$dcdom,$defdom) = @_; |
|
$env{'user.name'} = $dcname; |
|
$env{'user.domain'} = $dcdom; |
|
$env{'user.home'} = &Apache::lonnet::homeserver($dcname,$dcdom); |
|
if ($defdom ne '') { |
|
$env{'request.role.domain'} = $defdom; |
|
} |
|
return; |
|
} |
|
|
|
sub unset_dc_env { |
|
delete($env{'user.name'}); |
|
delete($env{'user.domain'}); |
|
delete($env{'user.home'}); |
|
if ($env{'request.role.domain'}) { |
|
delete($env{'request.role.domain'}); |
|
} |
|
return; |
|
} |