Diff for /loncom/interface/Attic/londropadd.pm between versions 1.30 and 1.34

version 1.30, 2002/04/25 19:21:34 version 1.34, 2002/04/30 13:51:00
Line 75  ENDHEAD Line 75  ENDHEAD
   
 # =========== Drop student from all sections of a course, except optional $csec  # =========== Drop student from all sections of a course, except optional $csec
 sub modifystudent {  sub modifystudent {
     my ($udom,$unam,$courseid,$csec)=@_;      my ($udom,$unam,$courseid,$csec,$desiredhost)=@_;
     # if $csec is undefined, drop the student from all the courses matching      # if $csec is undefined, drop the student from all the courses matching
     # this one.  If $csec is defined, drop them from all other sections of       # this one.  If $csec is defined, drop them from all other sections of 
     # this course and add them to section $csec      # this course and add them to section $csec
Line 97  sub modifystudent { Line 97  sub modifystudent {
                 my $now=time;                  my $now=time;
                 if (!($start && ($now<$start)) || !($end && ($now>$end))) {                  if (!($start && ($now<$start)) || !($end && ($now>$end))) {
                     my $reply=&Apache::lonnet::modifystudent                      my $reply=&Apache::lonnet::modifystudent
                         ($udom,$unam,'','','','','','','',$section,time);                          ($udom,$unam,'','','','','','','',
                            $section,time,undef,undef,$desiredhost);
                 }                  }
             }              }
         }          }
     }      }
 }  }
   
   # ============ build a domain and server selection form
   sub domain_form {
       my ($defdom) = @_;
       # Set up domain and server selection forms
       #
       # Get the domains
       my @domains = &Apache::loncommon::get_domains();
       # build up the menu information to be passed to 
       # &Apache::loncommon::linked_select_forms
       my %select_menus;
       foreach my $dom (@domains) {
           # set up the text for this domain
           $select_menus{$dom}->{'text'}= $dom;
           # we want a choice of 'default' as the default in the second menu
           $select_menus{$dom}->{'default'}= 'default';
           $select_menus{$dom}->{'select2'}->{'default'} = 'default';
           # Now build up the other items in the second menu
           my %servers = &Apache::loncommon::get_home_servers($dom);
           foreach my $server (keys(%servers)) {
               $select_menus{$dom}->{'select2'}->{$server} 
                                               = "$server $servers{$server}";
           }
       }
       my $result  = &Apache::loncommon::linked_select_forms
           ('studentform',' with home server ',$defdom,
            'lcdomain','lcserver',\%select_menus);
       return $result;
   }
   
 # ============================================================== Menu Phase One  # ============================================================== Menu Phase One
 sub menu_phase_one {  sub menu_phase_one {
     my $r=shift;      my $r=shift;
Line 382  sub phase_two_end { Line 412  sub phase_two_end {
     my $krbform = &Apache::loncommon::authform_kerberos(%param);      my $krbform = &Apache::loncommon::authform_kerberos(%param);
     my $intform = &Apache::loncommon::authform_internal(%param);      my $intform = &Apache::loncommon::authform_internal(%param);
     my $locform = &Apache::loncommon::authform_local(%param);      my $locform = &Apache::loncommon::authform_local(%param);
     # Set up domain selection form      my $domform = &domain_form($defdom);
     my $domform = &Apache::loncommon::select_dom_form($defdom,'lcdomain');      
     $r->print(<<ENDPICK);      $r->print(<<ENDPICK);
 </table>  </table>
 <input type=hidden name=nfields value=$i>  <input type=hidden name=nfields value=$i>
Line 474  sub menu_phase_two_upload { Line 503  sub menu_phase_two_upload {
 sub enroll_single_student {  sub enroll_single_student {
     my $r=shift;      my $r=shift;
     $r->print('<h3>Enrolling Student</h3>');      $r->print('<h3>Enrolling Student</h3>');
     $r->print($ENV{'form.cuname'}." in domain ".$ENV{'form.cdomain'}.": ");      $r->print('<p>Enrolling '.$ENV{'form.cuname'}." in domain ".
                 $ENV{'form.lcdomain'}.'</p>');
     if (($ENV{'form.cuname'})&&($ENV{'form.cuname'}!~/\W/)&&      if (($ENV{'form.cuname'})&&($ENV{'form.cuname'}!~/\W/)&&
         ($ENV{'form.cdomain'})&&($ENV{'form.cdomain'}!~/\W/)) {          ($ENV{'form.lcdomain'})&&($ENV{'form.lcdomain'}!~/\W/)) {
           # Deal with home server selection
           my $domain=$ENV{'form.lcdomain'};
           my $desiredhost = $ENV{'form.lcserver'};
           if (lc($desiredhost) eq 'default') {
               $desiredhost = undef;
           } else {
               my %home_servers = &Apache::loncommon::get_home_servers($domain);
               if (! exists($home_servers{$desiredhost})) {
                   $r->print('<font color="#ff0000">Error:</font>'.
                             'Invalid home server specified');
                   return;
               }
           }
           $r->print(" with server $desiredhost :") if (defined($desiredhost));
           # End of home server selection logic
  my $amode='';   my $amode='';
         my $genpwd='';          my $genpwd='';
         if ($ENV{'form.login'} eq 'krb') {          if ($ENV{'form.login'} eq 'krb') {
Line 490  sub enroll_single_student { Line 535  sub enroll_single_student {
     $genpwd=$ENV{'form.locarg'};      $genpwd=$ENV{'form.locarg'};
     if (!$genpwd) { $genpwd=" "; }      if (!$genpwd) { $genpwd=" "; }
  }   }
         if (($amode) && ($genpwd)) {          my $home = &Apache::lonnet::homeserver($ENV{'form.cuname'},
             &modifystudent($ENV{'form.cdomain'},$ENV{'form.cuname'},                                                     $ENV{'form.lcdomain'});
                            $ENV{'request.course.id'},$ENV{'form.csec'});          if ((($amode) && ($genpwd)) || ($home ne 'no_host')) {
               &modifystudent($ENV{'form.lcdomain'},$ENV{'form.cuname'},
                              $ENV{'request.course.id'},$ENV{'form.csec'},
                               $desiredhost);
           $r->print(&Apache::lonnet::modifystudent(            $r->print(&Apache::lonnet::modifystudent(
                       $ENV{'form.cdomain'},$ENV{'form.cuname'},                        $ENV{'form.lcdomain'},$ENV{'form.cuname'},
                       $ENV{'form.cstid'},$amode,$genpwd,                        $ENV{'form.cstid'},$amode,$genpwd,
                $ENV{'form.cfirst'},$ENV{'form.cmiddle'},                 $ENV{'form.cfirst'},$ENV{'form.cmiddle'},
                       $ENV{'form.clast'},$ENV{'form.cgen'},                        $ENV{'form.clast'},$ENV{'form.cgen'},
                       $ENV{'form.csec'},$ENV{'form.enddate'},                        $ENV{'form.csec'},$ENV{'form.enddate'},
                       $ENV{'form.startdate'},$ENV{'form.forceid'}));                        $ENV{'form.startdate'},$ENV{'form.forceid'},
                       $desiredhost));
  } else {   } else {
            $r->print('Invalid login mode or password');                  $r->print('<p><font color="#ff0000">ERROR</font>&nbsp;'.
                         'Invalid login mode or password.  '.
                         'Unable to enroll '.$ENV{'form.cuname'}.'.</p>');
         }                    }          
     } else {      } else {
         $r->print('Invalid username or domain');          $r->print('Invalid username or domain');
Line 523  sub menu_phase_two_enroll { Line 574  sub menu_phase_two_enroll {
     my $intform = &Apache::loncommon::authform_internal(%param);      my $intform = &Apache::loncommon::authform_internal(%param);
     my $locform = &Apache::loncommon::authform_local(%param);      my $locform = &Apache::loncommon::authform_local(%param);
     # Set up domain selection form      # Set up domain selection form
     my $domform = &Apache::loncommon::select_dom_form($defdom,'cdomain');          my $domform = &domain_form($defdom);
     # Print it all out      # Print it all out
     $r->print(<<ENDSENROLL);      $r->print(<<ENDSENROLL);
 <script type="text/javascript" language="Javascript">  <script type="text/javascript" language="Javascript">
Line 535  function verify(vf) { Line 586  function verify(vf) {
     var foundsec=0;      var foundsec=0;
     var tw;      var tw;
     if ((typeof(vf.cuname.value) !="undefined") && (vf.cuname.value!='') &&       if ((typeof(vf.cuname.value) !="undefined") && (vf.cuname.value!='') && 
  (typeof(vf.cdomain.value)!="undefined") && (vf.cdomain.value!='')) {   (typeof(vf.lcdomain.value)!="undefined") && (vf.lcdomain.value!='')) {
         founduname=1;          founduname=1;
     }      }
     if ((typeof(vf.cfirst.value)!="undefined") && (vf.cfirst.value!='') &&      if ((typeof(vf.cfirst.value)!="undefined") && (vf.cfirst.value!='') &&
Line 654  sub show_drop_list { Line 705  sub show_drop_list {
     my ($r,%currentlist)=@_;      my ($r,%currentlist)=@_;
     my $cid=$ENV{'request.course.id'};      my $cid=$ENV{'request.course.id'};
     $r->print(<<'END');      $r->print(<<'END');
   <script>
   function checkAll(field)
   {
       for (i = 0; i < field.length; i++)
           field[i].checked = true ;
   }
   
   function uncheckAll(field)
   {
       for (i = 0; i < field.length; i++)
           field[i].checked = false ;
   }
   </script>
   <p>
 <input type="hidden" name="phase" value="four">  <input type="hidden" name="phase" value="four">
 <table border=2>  <table border=2>
 <tr><th>&nbsp;</th><th>username</th><th>domain</th>  <tr><th>&nbsp;</th><th>username</th><th>domain</th>
Line 688  END Line 753  END
         }          }
     }      }
     $r->print('</table><br>');      $r->print('</table><br>');
     $r->print('<input type=submit value="Drop Students">');      $r->print(<<"END");
   </p><p>
   <input type="button" value="check all" onclick="javascript:checkAll(document.studentform.droplist)"> &nbsp;
   <input type="button" value="uncheck all" onclick="javascript:uncheckAll(document.studentform.droplist)"> 
   <p><input type=submit value="Drop Students"></p>
   END
 }  }
   
 # ================================================= Drop/Add from uploaded file  # ================================================= Drop/Add from uploaded file
Line 713  sub upfile_drop_add { Line 783  sub upfile_drop_add {
     my $enddate   = $ENV{'form.enddate'};      my $enddate   = $ENV{'form.enddate'};
     if ($startdate=~/\D/) { $startdate=''; }      if ($startdate=~/\D/) { $startdate=''; }
     if ($enddate=~/\D/)   { $enddate=''; }      if ($enddate=~/\D/)   { $enddate=''; }
     #      # Determine domain and desired host (home server)
     my $domain=$ENV{'form.lcdomain'};      my $domain=$ENV{'form.lcdomain'};
       my $desiredhost = $ENV{'form.lcserver'};
       if (lc($desiredhost) eq 'default') {
           $desiredhost = undef;
       } else {
           my %home_servers = &Apache::loncommon::get_home_servers($domain);
           if (! exists($home_servers{$desiredhost})) {
               $r->print('<font color="#ff0000">Error:</font>'.
                         'Invalid home server specified');
               return;
           }
       }
     # Determine authentication mechanism      # Determine authentication mechanism
     my $amode  = '';      my $amode  = '';
     my $genpwd = '';      my $genpwd = '';
Line 797  sub upfile_drop_add { Line 878  sub upfile_drop_add {
                         }                          }
                     }                      }
                     if ($password) {                      if ($password) {
                         &modifystudent($domain,$username,$cid,$sec);                          &modifystudent($domain,$username,$cid,$sec,
                                          $desiredhost);
                         my $reply=&Apache::lonnet::modifystudent                          my $reply=&Apache::lonnet::modifystudent
                             ($domain,$username,$id,$amode,$password,                              ($domain,$username,$id,$amode,$password,
                              $fname,$mname,$lname,$gen,$sec,$enddate,                               $fname,$mname,$lname,$gen,$sec,$enddate,
                              $startdate,$ENV{'form.forceid'});                               $startdate,$ENV{'form.forceid'},$desiredhost);
                         if ($reply ne 'ok') {                          if ($reply ne 'ok') {
                             $r->print('<p><b>'.                              $r->print('<p><b>'.
                                       'Error enrolling '.$username.': '.                                        'Error enrolling '.$username.': '.

Removed from v.1.30  
changed lines
  Added in v.1.34


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