version 1.29, 2002/04/23 21:03:59
|
version 1.33, 2002/04/29 14:36:23
|
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($ENV{'form.cuname'}." in domain ".$ENV{'form.lcdomain'}); |
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 :"); |
|
# 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 491 sub enroll_single_student {
|
Line 535 sub enroll_single_student {
|
if (!$genpwd) { $genpwd=" "; } |
if (!$genpwd) { $genpwd=" "; } |
} |
} |
if (($amode) && ($genpwd)) { |
if (($amode) && ($genpwd)) { |
&modifystudent($ENV{'form.cdomain'},$ENV{'form.cuname'}, |
&modifystudent($ENV{'form.lcdomain'},$ENV{'form.cuname'}, |
$ENV{'request.course.id'},$ENV{'form.csec'}); |
$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('Invalid login mode or password'); |
} |
} |
Line 523 sub menu_phase_two_enroll {
|
Line 569 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 581 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 700 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> </th><th>username</th><th>domain</th> |
<tr><th> </th><th>username</th><th>domain</th> |
Line 688 END
|
Line 748 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)"> |
|
<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 778 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 873 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.': '. |
Line 870 sub drop_student_list {
|
Line 947 sub drop_student_list {
|
# ================================================================ Main Handler |
# ================================================================ Main Handler |
sub handler { |
sub handler { |
my $r=shift; |
my $r=shift; |
$Apache::lonxml::debug=1; |
|
if ($r->header_only) { |
if ($r->header_only) { |
$r->content_type('text/html'); |
$r->content_type('text/html'); |
$r->send_http_header; |
$r->send_http_header; |