version 1.4, 2005/06/29 22:03:10
|
version 1.11, 2010/01/31 18:06:10
|
Line 2
|
Line 2
|
# |
# |
# Automated Course Creation script |
# Automated Course Creation script |
# |
# |
|
# $Id$ |
|
# |
# Copyright Michigan State University Board of Trustees |
# Copyright Michigan State University Board of Trustees |
# |
# |
# This file is part of the LearningOnline Network with CAPA (LON-CAPA). |
# This file is part of the LearningOnline Network with CAPA (LON-CAPA). |
Line 34
|
Line 36
|
use strict; |
use strict; |
use lib '/home/httpd/lib/perl'; |
use lib '/home/httpd/lib/perl'; |
use Apache::lonnet; |
use Apache::lonnet; |
|
use Apache::lonlocal; |
use LONCAPA::batchcreatecourse; |
use LONCAPA::batchcreatecourse; |
use LONCAPA::Configuration; |
use LONCAPA::Configuration; |
|
use LONCAPA(); |
|
|
my $perlvarref = &LONCAPA::Configuration::read_conf('loncapa.conf'); |
my $perlvarref = &LONCAPA::Configuration::read_conf('loncapa.conf'); |
my $logfile = $$perlvarref{'lonDaemons'}.'/logs/autocreate.log'; |
my $logfile = $$perlvarref{'lonDaemons'}.'/logs/autocreate.log'; |
Line 60
|
Line 64
|
close($fh); |
close($fh); |
exit; |
exit; |
} |
} |
|
|
|
# Initialize language handler |
|
&Apache::lonlocal::get_language_handle(); |
|
|
my $batchdir = $$perlvarref{'lonDaemons'}.'/tmp/addcourse/'.$defdom.'/auto'; |
my $batchdir = $$perlvarref{'lonDaemons'}.'/tmp/addcourse/'.$defdom.'/auto'; |
opendir(DIR,"$batchdir/pending"); |
opendir(DIR,"$batchdir/pending"); |
my @requests = grep(!/^\.\.?$/,readdir(DIR)); |
my @requests = grep(!/^\.\.?$/,readdir(DIR)); |
closedir(DIR); |
closedir(DIR); |
my %courseids = (); |
my %courseids = (); |
my @permissions = ('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); |
$env{'user.name'} = $dcname; |
$env{'user.name'} = $dcname; |
$env{'user.domain'} = $dcdom; |
$env{'user.domain'} = $dcdom; |
|
$env{'request.role.domain'} = $defdom; |
my $wwwid=getpwnam('www'); |
my $wwwid=getpwnam('www'); |
if ($wwwid!=$<) { |
if ($wwwid!=$<) { |
my $emailto=$$perlvarref{'lonAdmEMail'}; |
my $emailto=$$perlvarref{'lonAdmEMail'}; |
Line 96
|
Line 104
|
|
|
print $fh "Sending to batch - auto,$defdom,$dcname,$dcdom ".join(":",@requests)."\n"; |
print $fh "Sending to batch - auto,$defdom,$dcname,$dcdom ".join(":",@requests)."\n"; |
my ($result,$logmsg) = &LONCAPA::batchcreatecourse::create_courses(\@requests,\%courseids,'auto',$defdom,$dcname,$dcdom); |
my ($result,$logmsg) = &LONCAPA::batchcreatecourse::create_courses(\@requests,\%courseids,'auto',$defdom,$dcname,$dcdom); |
print $fh "$result && $logmsg\n"; |
my $outcome; |
|
if ($result ne '') { |
|
$outcome = $result."\n"; |
|
} |
|
if ($logmsg ne '') { |
|
$outcome .= $logmsg."\n"; |
|
} |
|
print $fh $outcome; |
|
|
|
my $output; |
# Copy requests from pending directory to processed directory and unlink. |
# Copy requests from pending directory to processed directory and unlink. |
foreach my $request (@requests) { |
foreach my $request (@requests) { |
if ((-e "$batchdir/pending/$request") && $request !~ /\.\./ && $request ne '' &&$request ne './') { |
if ((-e "$batchdir/pending/$request") && $request !~ /\.\./ && $request ne '' &&$request ne './') { |
open(FILE,"<$batchdir/pending/$request"); |
open(FILE,"<$batchdir/pending/$request"); |
my @buffer = <FILE>; |
my @buffer = <FILE>; |
Line 116
|
Line 132
|
} |
} |
} |
} |
|
|
my $output; |
|
foreach my $key (sort keys %courseids) { |
foreach my $key (sort keys %courseids) { |
print $fh "created course: $key - $courseids{$key}\n"; |
print $fh "created course: $key - $courseids{$key}\n"; |
my $newcourse = &Apache::lonnet::escape($key.':'.$courseids{$key}); |
my $newcourse = &LONCAPA::escape($key.':'.$courseids{$key}); |
$output .= $newcourse.':'; |
$output .= $newcourse.':'; |
} |
} |
$output =~ s/:$//; |
$output =~ s/:$//; |
Line 128
|
Line 143
|
&unset_permissions(\%permissionflags); |
&unset_permissions(\%permissionflags); |
delete($env{'user.name'}); |
delete($env{'user.name'}); |
delete($env{'user.domain'}); |
delete($env{'user.domain'}); |
|
delete($env{'request.role.domain'}); |
print $fh "-- ".localtime(time)." Autocreation messages end\n*******************\n\n"; |
print $fh "-- ".localtime(time)." Autocreation messages end\n*******************\n\n"; |
close($fh); |
close($fh); |
|
|