Diff for /loncom/enrollment/Enrollment.pm between versions 1.38 and 1.42

version 1.38, 2008/04/30 23:59:13 version 1.42, 2009/10/31 17:55:01
Line 92  sub update_LC { Line 92  sub update_LC {
     open(FILE,"<$$configvars{'lonTabDir'}.'/rolesplain.tab");      open(FILE,"<$$configvars{'lonTabDir'}.'/rolesplain.tab");
     my @rolesplain = <FILE>;      my @rolesplain = <FILE>;
     close(FILE);      close(FILE);
     foreach (@rolesplain) {      foreach my $item (@rolesplain) {
         if ($_ =~ /^(st|ta|ex|ad|in|cc):([\w\s]+)$/) {          if ($_ =~ /^(st|ta|ex|ad|in|cc|co):([\w\s]+):?([\w\s]*)/) {
             $longroles{$1} = $2;              if ($courseinfo{'type'} eq 'Community') {
                   unless($1 eq 'cc') {
                       $longroles{$1} = $3;
                   }
               } else {
                   unless($1 eq 'co') { 
                       $longroles{$1} = $2;
                   }
               }
         }          }
     }      }
   
Line 171  sub update_LC { Line 179  sub update_LC {
             push @okusers, $uname;              push @okusers, $uname;
         }          }
     }      }
 # Get mapping of student IDs to usernames for users in institutional data for this class    # Get mapping of student/employee IDs to usernames for users in institutional data for this class  
     my @allINids = ();      my @allINids = ();
     my %unameFromINid = ();      my %unameFromINid = ();
     foreach my $uname (@okusers) {      foreach my $uname (@okusers) {
Line 238  sub update_LC { Line 246  sub update_LC {
                     if ( (grep/^$uname$/,@futurestudents) && ($$currlist{$uname}[$type] eq "auto") && ($adds == 1) ) {                      if ( (grep/^$uname$/,@futurestudents) && ($$currlist{$uname}[$type] eq "auto") && ($adds == 1) ) {
                         my $datechange = &datechange_check($$currlist{$uname}[$cstart],$$currlist{$uname}[$cend],$startdate,$enddate);                          my $datechange = &datechange_check($$currlist{$uname}[$cstart],$$currlist{$uname}[$cend],$startdate,$enddate);
                         if ($datechange) {                          if ($datechange) {
                             my $modify_access_result = &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$enddate,$startdate,'auto','',$cid);                              my $modify_access_result = &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$enddate,$startdate,'auto','',$cid,'',$context);
                             $access = &showaccess($enddate,$startdate);                              $access = &showaccess($enddate,$startdate);
                             if ($modify_access_result =~ /^ok/) {                              if ($modify_access_result =~ /^ok/) {
                                 $$logmsg .= &mt('Change in access dates for [_1].',$uname).$access.$linefeed;                                  $$logmsg .= &mt('Change in access dates for [_1].',$uname).$access.$linefeed;
Line 260  sub update_LC { Line 268  sub update_LC {
                         if ($expire_role_result eq 'ok') {                          if ($expire_role_result eq 'ok') {
                             my $modify_section_result;                              my $modify_section_result;
                             if (grep/^$uname$/,@activestudents) {                              if (grep/^$uname$/,@activestudents) {
                                 $modify_section_result = &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$$currlist{$uname}[$cend],$$currlist{$uname}[$cstart],'auto','',$cid);                                  $modify_section_result = &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$$currlist{$uname}[$cend],$$currlist{$uname}[$cstart],'auto','',$cid,'',$context);
                             } else {                              } else {
                                 $modify_section_result =  &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$enddate,$startdate,'auto','',$cid);                                  $modify_section_result =  &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$enddate,$startdate,'auto','',$cid,'',$context);
                                 $access =  &showaccess($enddate,$startdate);                                  $access =  &showaccess($enddate,$startdate);
                             }                              }
                             if ($modify_section_result =~ /^ok/) {                              if ($modify_section_result =~ /^ok/) {
Line 283  sub update_LC { Line 291  sub update_LC {
 # Check for changed usernames by checking studentIDs  # Check for changed usernames by checking studentIDs
                 if ( ($stuinfo[ $place{studentID} ] ne '') && (grep/^$stuinfo[ $place{studentID} ]$/,@LCids) ) {                  if ( ($stuinfo[ $place{studentID} ] ne '') && (grep/^$stuinfo[ $place{studentID} ]$/,@LCids) ) {
                     foreach my $match ( @{ $unameFromLCid{ $stuinfo[ $place{studentID} ] } }  ) {                      foreach my $match ( @{ $unameFromLCid{ $stuinfo[ $place{studentID} ] } }  ) {
                         $$logmsg .= &mt('A possible change in username has been detected for a student enrolled in this course.').' '.&mt('The existing LON-CAPA classlist contains user: [_1] and student ID: [_2].',$match,$stuinfo[ $place{studentID} ]);                          $$logmsg .= &mt('A possible change in username has been detected for a student enrolled in this course.').' '.&mt('The existing LON-CAPA classlist contains user: [_1] and student/employee ID: [_2].',$match,$stuinfo[ $place{studentID} ]);
                         if (grep/^$match$/,@okusers) {                          if (grep/^$match$/,@okusers) {
                             $$logmsg .= &mt('The username [_1] remains in the institutional classlist, but the same student ID is used for new user: [_2] now found in the institutional classlist.',$match,$uname).' '.&mt('You may need to contact your Domain Coordinator to determine how to resolve this issue and whether to move student data files for user: [_1] to [_2].',$match,$uname).' ';                              $$logmsg .= &mt('The username [_1] remains in the institutional classlist, but the same student/employee ID is used for new user: [_2] now found in the institutional classlist.',$match,$uname).' '.&mt('You may need to contact your Domain Coordinator to determine how to resolve this issue and whether to move student data files for user: [_1] to [_2].',$match,$uname).' ';
                         } else {                          } else {
                             unless ($drops == 1) {                              unless ($drops == 1) {
                                 $$logmsg .= &mt('This username - [_1] - has been dropped from the institutional classlist, but the student ID of this user is also used by [_2] who now appears in the institutional classlist.',$match,$uname).' '.&mt('You may need to contact your Domain Coordinator to request a move of the student data files for user: [_1] to [_2].',$match,$uname).' ';                                  $$logmsg .= &mt('This username - [_1] - has been dropped from the institutional classlist, but the student/employee ID of this user is also used by [_2] who now appears in the institutional classlist.',$match,$uname).' '.&mt('You may need to contact your Domain Coordinator to request a move of the student data files for user: [_1] to [_2].',$match,$uname).' ';
                             }                              }
                         }                          }
                         $$logmsg .= &mt('Because of this student ID conflict, the new username - [_1] - has not been added to the LON-CAPA classlist',$uname).$linefeed;                          $$logmsg .= &mt('Because of this student/employee ID conflict, the new username - [_1] - has not been added to the LON-CAPA classlist',$uname).$linefeed;
                     }                      }
                 } elsif ($adds == 1) {                  } elsif ($adds == 1) {
                     my ($auth,$authparam,$first,$middle,$last,$gene,$usec,$end,$start,$emailaddr,$pid,$emailenc);                      my ($auth,$authparam,$first,$middle,$last,$gene,$usec,$end,$start,$emailaddr,$pid,$emailenc);
Line 373  sub update_LC { Line 381  sub update_LC {
 # Check for changed usernames by checking studentIDs  # Check for changed usernames by checking studentIDs
                     if (grep/^$$currlist{$uname}[ $stuid ]$/,@allINids) {                      if (grep/^$$currlist{$uname}[ $stuid ]$/,@allINids) {
                         foreach my $match (@{$unameFromINid{$$currlist{$uname}[ $stuid ]}} ) {                          foreach my $match (@{$unameFromINid{$$currlist{$uname}[ $stuid ]}} ) {
                             $$logmsg .= &mt('A possible change in username has been detected for a student enrolled in this course.').' '.&mt('The existing LON-CAPA classlist contains user: [_1] and student ID: [_2].',$uname,$$currlist{$uname}[ $place{studentID} ]).' '.&mt('This username has been dropped from the institutional classlist, but the same student ID is used for user: [_1] who still appears in the institutional classlist.',$match).' '.&mt('You may need to move the student data files for user: [_1] to [_2]',$uname,$match).' '.&mt('Because of this, user [_1] has not been dropped from the course.',$uname).$linefeed;                              $$logmsg .= &mt('A possible change in username has been detected for a student enrolled in this course.').' '.&mt('The existing LON-CAPA classlist contains user: [_1] and student/employee ID: [_2].',$uname,$$currlist{$uname}[ $place{studentID} ]).' '.&mt('This username has been dropped from the institutional classlist, but the same student/employee ID is used for user: [_1] who still appears in the institutional classlist.',$match).' '.&mt('You may need to move the student data files for user: [_1] to [_2]',$uname,$match).' '.&mt('Because of this, user [_1] has not been dropped from the course.',$uname).$linefeed;
                             push @saved,$uname;                              push @saved,$uname;
                         }                          }
                     } elsif (@saved == 0) {                      } elsif (@saved == 0) {
Line 540  sub create_newuser { Line 548  sub create_newuser {
                 } else {                  } else {
                     my $subject = &mt('New LON-CAPA account');                      my $subject = &mt('New LON-CAPA account');
                     my $body;                      my $body;
                       my $portalurl = 'http://'.$ENV{'SERVER_NAME'};
                       my $protocol = 'http';
                       my $lonhost=&Apache::lonnet::domain($udom,'primary');
                       if ($lonhost ne '') {
                           my $ip = &Apache::lonnet::get_host_ip($lonhost);
                           if ($Apache::lonnet::protocol{$lonhost} eq 'https') {
                               $protocol = 'https';
                           }
                           if ($ip ne '') {
                               $portalurl = $protocol.'://'.$ip
                           }
                       }
                     if ($context eq 'createowner') {                      if ($context eq 'createowner') {
                         $body = &mt('A user account has been created for you while creating your new course in the LON-CAPA course management and online homework system.')."\n\n".&mt('You should log-in to the system using the following credentials:')."\n".&mt('username: ').$uname."\n".&mt('password: ').$authparam."\n\n".&mt('The URL you should use to access the LON-CAPA system at your school is: ').'http://'.$ENV{'SERVER_NAME'}."\n\n";                          $body = &mt('A user account has been created for you while creating your new course in the LON-CAPA course management and online homework system.')."\n\n".&mt('You should log-in to the system using the following credentials:')."\n".&mt('username: ').$uname."\n".&mt('password: ').$authparam."\n\n".&mt('The URL you should use to access the LON-CAPA system at your institution is: ').$portalurl."\n\n";
                     } elsif ($context eq 'createcourse') {                      } elsif ($context eq 'createcourse') {
                         $body = &mt('You have been assigned the role of [_1] in a new course: [_2] - [_3] in the LON-CAPA course management and online homework system.',$$longroles{$role},$$courseinfo{'description'},$$courseinfo{'inst_code'}).' '.&mt('As you did not have an existing user account in the system, one has been created for you.')."\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 school is: '),'http://'.$ENV{'SERVER_NAME'}."\n\n";                           $body = &mt('You have been assigned the role of [_1] in a new course: [_2] - [_3] in the LON-CAPA course management and online homework system.',$$longroles{$role},$$courseinfo{'description'},$$courseinfo{'inst_code'}).' '.&mt('As you did not have an existing user account in the system, one has been created for you.')."\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"; 
                     } else {                      } else {
                         my $access_start = 'immediately';                          my $access_start = 'immediately';
                         if ($start > 0) {                          if ($start > 0) {
                             $access_start = localtime($start)                              $access_start = localtime($start)
                         }                          }
                         $body = &mt('You have been enrolled in the LON-CAPA system at your school, because you are a registered student in a class that 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 school is: ').'http://'.$ENV{'SERVER_NAME'}."\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 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";
                     }                      }
                     &Apache::lonmsg::sendemail($emailaddr,$subject,$body);                      &Apache::lonmsg::sendemail($emailaddr,$subject,$body);
                 }                  }
Line 621  sub execute_add { Line 641  sub execute_add {
 # Get the user's e-mail address  # Get the user's e-mail address
     if ($userenv{critnotification} =~ m/%40/) {      if ($userenv{critnotification} =~ m/%40/) {
         unless ($emailenc eq $userenv{critnotification}) {          unless ($emailenc eq $userenv{critnotification}) {
             $$logmsg .= &mt('Current critical notification e-mail              $$logmsg .= &mt('Current critical notification e-mail - [_1] for [_2] is different to e-mail address in institutional classlist - [_3].',
 - [_1] for [_2] is different to e-mail address in institutional classlist - [_3].',$userenv{critnotification},$uname,$emailenc).$linefeed;                             $userenv{critnotification},$uname,$emailenc).
                           $linefeed;
         }          }
     }      }
     if ($userenv{notification} =~ m/%40/) {      if ($userenv{notification} =~ m/%40/) {
         unless ($emailenc eq $userenv{notification}) {          unless ($emailenc eq $userenv{notification}) {
             $$logmsg .= &mt('Current standard notification e-mail              $$logmsg .= &mt('Current standard notification e-mail - [_1] for [_2] is different to e-mail address in institutional classlist - [_3].',
 - [_1] for [_2] is different to e-mail address in institutional classlist - [_3]',$userenv{notification},$uname,$emailenc).$linefeed;                              $userenv{notification},$uname,$emailenc).
                           $linefeed;
         }          }
     }      }
     if ($userenv{permanentemail} =~ m/%40/) {      if ($userenv{permanentemail} =~ m/%40/) {
Line 680  sub execute_add { Line 702  sub execute_add {
     }      }
                                                                                                                                                                       
 # Assign the role of student in the course.  # Assign the role of student in the course.
     my $classlist_reply = &Apache::lonnet::modify_student_enrollment($dom,$uname,$pid,$first,$middle,$last,$gene,$usec,$end,$start,'auto','',$cid);      my $classlist_reply = &Apache::lonnet::modify_student_enrollment($dom,$uname,$pid,$first,$middle,$last,$gene,$usec,$end,$start,'auto','',$cid,'',$context);
     if ($classlist_reply eq 'ok') {      if ($classlist_reply eq 'ok') {
         my $access = &showaccess($end,$start);          my $access = &showaccess($end,$start);
         my $showsec = $usec;          my $showsec = $usec;
Line 874  sub photo_response_types { Line 896  sub photo_response_types {
                       'missing' => 'were missing',                        'missing' => 'were missing',
                       'error' => 'were not imported because an error occurred',                        'error' => 'were not imported because an error occurred',
                       'nouser' => 'were for users without accounts',                        'nouser' => 'were for users without accounts',
                       'noid' => 'were for users without student IDs',                        'noid' => 'were for users without student/employee IDs',
  );   );
     return %lt;      return %lt;
 }  }

Removed from v.1.38  
changed lines
  Added in v.1.42


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>