--- loncom/enrollment/Enrollment.pm 2013/03/01 05:20:01 1.44 +++ loncom/enrollment/Enrollment.pm 2016/06/03 01:22:36 1.48 @@ -1,5 +1,5 @@ # Automated Enrollment manager -# $Id: Enrollment.pm,v 1.44 2013/03/01 05:20:01 raeburn Exp $ +# $Id: Enrollment.pm,v 1.48 2016/06/03 01:22:36 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -61,6 +61,7 @@ sub update_LC { my @activestudents = (); my @excludedstudents = (); my $currlist; + my $now = time; foreach my $uname (keys %{$roster} ) { if ($uname =~ m/^(.+):$dom$/) { if ($$roster{$uname}[$status] eq "Active") { @@ -196,9 +197,11 @@ sub update_LC { } } -# Explicitly allow access to creation/modification of students if called as an automated process. +# Explicitly allow access to creation/modification of students and group membership changes +# when called as an automated process. if ($context eq 'automated') { $env{'allowed.cst'}='F'; + $env{'allowed.mdg'}='F'; } # Compare IDs with existing LON-CAPA enrollment for this class @@ -229,7 +232,7 @@ sub update_LC { my $drop_reply = &Apache::lonnet::modifystudent($dom,$uname,'','','',undef,undef,undef,undef,$$currlist{$uname}[$sec],time,undef,undef,undef,undef,'auto','',$cid,'',$context); # re-enroll as auto student if ($drop_reply !~ /^ok/) { - $$logmsg .= &mt('An error occured during the attempt to convert [_1] from a manual type to an auto type student - [_2].',$uname,$drop_reply).$linefeed; + $$logmsg .= &mt('An error occurred during the attempt to convert [_1] from a manual type to an auto type student - [_2].',$uname,$drop_reply).$linefeed; } else { # re-enroll as auto student my ($auth,$authparam,$first,$middle,$last,$gene,$usec,$end,$start,$emailaddr,$pid,$emailenc); @@ -339,6 +342,7 @@ sub update_LC { my ($auth,$authparam,$first,$middle,$last,$gene,$usec,$end,$start,$emailaddr,$pid,$emailenc,$credithours); &prepare_add($authtype,$autharg,$enddate,$startdate,\@stuinfo,\%place,\$dom,\$uname,\$auth,\$authparam,\$first,\$middle,\$last,\$gene,\$usec,\$end,\$start,\$emailaddr,\$pid,\$emailenc); # Check for existing account in this LON-CAPA domain for this username + next if (($end) && ($end < $now)); my $uhome=&Apache::lonnet::homeserver($uname,$dom); if ($uhome eq 'no_host') { # User does not exist my $args = {'auth' => $auth, @@ -429,7 +433,7 @@ sub update_LC { } elsif (@saved == 0) { my $drop_reply = &Apache::lonnet::modifystudent($dom,$uname,'','','',undef,undef,undef,undef,$$currlist{$uname}[$sec],time,undef,undef,undef,undef,'auto','',$cid,'',$context); if ($drop_reply !~ /^ok/) { - $$logmsg .= &mt('An error occured during the attempt to expire the [_1] from the old section [_2] - [_3].',$uname,$$currlist{$uname}[$sec],$drop_reply).$linefeed; + $$logmsg .= &mt('An error occurred during the attempt to expire the [_1] from the old section [_2] - [_3].',$uname,$$currlist{$uname}[$sec],$drop_reply).$linefeed; } else { $dropcount ++; my %userenv = &Apache::lonnet::get('environment',['firstname','lastname','id'],$dom,$uname); @@ -444,9 +448,11 @@ sub update_LC { } } -# Terminated explictly allowed access to student creation/modification +# Terminated explictly allowed access to student creation/modification +# and group membership changes if ($context eq 'automated') { delete($env{'allowed.cst'}); + delete($env{'allowed.mdg'}); } if ($enrollcount > 0) { if ($context eq "updatenow") { @@ -613,7 +619,11 @@ sub create_newuser { if ($start > 0) { $access_start = localtime($start) } - $body = &mt('You have been enrolled in the LON-CAPA system at your institution, because you are a registered student in a class which is using the LON-CAPA couse management and online homework system.')."\n\n".&mt("You should log-in to the system using the following credentials:\nusername: [_1]\npassword: [_2]",$uname,$authparam)."\n\n".&mt('The URL you should use to access the LON-CAPA system at your institution is: ').$portalurl."\n\n".&mt('When you log-in you will be able to access the LON-CAPA course for [_1] - [_2] starting [_3].',$$courseinfo{'description'},$$courseinfo{'inst_code'},$access_start)."\n"; + $body = + &mt('You have been enrolled in the LON-CAPA system at your institution, because you are a registered student in a class which is using the LON-CAPA course management and online homework system.')."\n\n" + .&mt("You should log-in to the system using the following credentials:\nusername: [_1]\npassword: [_2]",$uname,$authparam)."\n\n" + .&mt('The URL you should use to access the LON-CAPA system at your institution is: ').$portalurl."\n\n" + .&mt('When you log-in you will be able to access the LON-CAPA course for [_1] - [_2] starting [_3].',$$courseinfo{'description'},$$courseinfo{'inst_code'},$access_start)."\n"; } &Apache::lonmsg::sendemail($emailaddr,$subject,$body); } @@ -647,7 +657,7 @@ sub prepare_add { $$start = $$stuinfo[ $$place{'startdate'} ]; $$emailaddr = $$stuinfo[ $$place{'email'} ]; $$pid = $$stuinfo[ $$place{'studentID'} ]; - + # remove non alphanumeric values from section $$usec =~ s/\W//g;