--- loncom/enrollment/Autoenroll.pl 2021/06/15 20:52:27 1.35 +++ loncom/enrollment/Autoenroll.pl 2023/10/02 21:01:22 1.38 @@ -1,7 +1,7 @@ #!/usr/bin/perl # #Automated Enrollment script -# $Id: Autoenroll.pl,v 1.35 2021/06/15 20:52:27 raeburn Exp $ +# $Id: Autoenroll.pl,v 1.38 2023/10/02 21:01:22 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -52,7 +52,7 @@ foreach my $dom (@domains) { #only run if configured to my $run_enroll = 0; - my ($domsettings,$autofailsafe); + my ($domsettings,$autofailsafe,$autofailsafetype); my %domconfig = &Apache::lonnet::get_dom('configuration',['autoenroll','coursedefaults'],$dom); if (ref($domconfig{'autoenroll'}) eq 'HASH') { @@ -63,6 +63,9 @@ if ($domsettings->{'autofailsafe'} ne '') { $autofailsafe = $domsettings->{'autofailsafe'}; } + if ($domsettings->{'failsafe'} =~ /^(zero|any|off)$/) { + $autofailsafetype = $domsettings->{'failsafe'}; + } } else { $run_enroll = &localenroll::run($dom); } @@ -186,14 +189,23 @@ if ($enrollvar{$crs}{'autodropfailsafe'}) { $failsafe = $enrollvar{$crs}{'autodropfailsafe'}; } - my ($changecount,$response) = &LONCAPA::Enrollment::update_LC($dom,$crs,$enrollvar{$crs}{autoadds},$enrollvar{$crs}{autodrops},$enrollvar{$crs}{startdate},$enrollvar{$crs}{enddate},$enrollvar{$crs}{authtype},$enrollvar{$crs}{autharg},$showcredits,$defaultcredits,$failsafe,$affiliates{$crs},$LC_code{$crs},\$logmsg,\$newusermsg,'automated'); + my $failsafetype = $autofailsafetype; + if ($enrollvar{$crs}{'autodropfailsafetype'}) { + $failsafetype = $enrollvar{$crs}{'autodropfailsafetype'}; + } + my ($changecount,$response) = &LONCAPA::Enrollment::update_LC($dom,$crs,$enrollvar{$crs}{autoadds},$enrollvar{$crs}{autodrops},$enrollvar{$crs}{startdate},$enrollvar{$crs}{enddate},$enrollvar{$crs}{authtype},$enrollvar{$crs}{autharg},$showcredits,$defaultcredits,$failsafe,$failsafetype,$affiliates{$crs},$LC_code{$crs},\$logmsg,\$newusermsg,'automated'); print $fh &mt('Messages start for [_1]',$crs)."\n"; print $fh "$logmsg\n"; print $fh &mt('Messages end for [_1]',$crs)."\n"; if ($changecount > 0) { -# Set $env{'user.name'}, $env{'user.domain'}, $env{'user.home'} -# and $env{'request.course.id'} for use by logging in lonmsg +# Set $env{'user.name'}, $env{'user.domain'}, $env{'user.home'}, +# $env{'request.course.id'} for use by logging in lonmsg, +# and $env{'course.'.$env{'request.course.id'}.'.internal.userdomains'} +# for use in courserolelog $env{'request.course.id'} = $dom.'_'.$crs; + if (exists($enrollvar{$crs}{'userdomains'})) { + $env{'course.'.$dom.'_'.$crs.'.internal.userdomains'} = $enrollvar{$crs}{'userdomains'}; + } my ($ownername,$ownerdom); if ($enrollvar{$crs}{'courseowner'} ne '') { if ($enrollvar{$crs}{'courseowner'} =~ /:/) { @@ -266,6 +278,9 @@ } delete($env{'user.name'}); delete($env{'user.home'}); + if (exists($enrollvar{$crs}{'userdomains'})) { + delete($env{'course.'.$dom.'_'.$crs.'.internal.userdomains'}); + } delete($env{'request.course.id'}); $env{'user.domain'} = $dom; }