version 1.26, 2002/04/16 21:02:17
|
version 1.28, 2002/04/22 15:26:46
|
Line 59 use Apache::Constants qw(:common :http R
|
Line 59 use Apache::Constants qw(:common :http R
|
# ================================================================ Print header |
# ================================================================ Print header |
|
|
sub header { |
sub header { |
my $r=shift; |
return(<<ENDHEAD); |
$r->print(<<ENDHEAD); |
|
<html> |
<html> |
<head> |
<head> |
<title>LON-CAPA Student Drop/Add</title> |
<title>LON-CAPA Student Drop/Add</title> |
Line 94 sub modifystudent {
|
Line 93 sub modifystudent {
|
my $section=$1; |
my $section=$1; |
$section='' if ($course eq $courseid.'_st'); |
$section='' if ($course eq $courseid.'_st'); |
if (((!$section) && (!$csec)) || ($section ne $csec)) { |
if (((!$section) && (!$csec)) || ($section ne $csec)) { |
my (undef,$end,$start)=split(/\_/,$course); |
my (undef,$end,$start)=split(/\_/,$roles{$course}); |
my $now=time; |
my $now=time; |
if (($start) && ($end) && ($now>$start) && ($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); |
} |
} |
Line 147 to this page if the data selected is ins
|
Line 146 to this page if the data selected is ins
|
<input type="hidden" name="upfile_associate" |
<input type="hidden" name="upfile_associate" |
value="$ENV{'form.upfile_associate'}" /> |
value="$ENV{'form.upfile_associate'}" /> |
<hr /> |
<hr /> |
<script> |
<script type="text/javascript" language="Javascript"> |
$javascript |
$javascript |
$javascript_validations |
$javascript_validations |
</script> |
</script> |
Line 156 ENDPICK
|
Line 155 ENDPICK
|
|
|
sub javascript_validations { |
sub javascript_validations { |
my ($krbdefdom)=@_; |
my ($krbdefdom)=@_; |
|
my %param = ( formname => 'studentform', |
|
kerb_def_dom => $krbdefdom ); |
|
my $authheader = &Apache::loncommon::authform_header(%param); |
return (<<ENDPICK); |
return (<<ENDPICK); |
function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec) { |
function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec) { |
var foundatype=0; |
var foundatype=0; |
var message=''; |
var message=''; |
if (founduname==0) { |
if (founduname==0) { |
alert('You need to specify at least the username field'); |
alert('You need to specify the username field'); |
return; |
return; |
} |
} |
if (vf.login[0].checked) { |
if (vf.login.value == null) { |
foundatype=1; |
// They did not check any of the login radiobuttons. |
if (vf.krbdom.value=='') { |
alert('You must choose an authentication type'); |
alert('You need to specify the Kerberos domain'); |
return; |
return; |
|
} |
|
} |
} |
if (vf.login[1].checked) { |
foundatype=1; |
foundatype=1; |
if (vf.login.argfield.value == '') { |
if ((vf.intpwd.value=='') && (foundpwd==0)) { |
var alertmsg = ''; |
alert('You need to specify the initial password'); |
switch (vf.login.value) { |
|
case 'krb': |
|
alertmsg = 'You need to specify the Kerberos domain'; |
|
break; |
|
case 'loc': |
|
case 'fsys': |
|
alertmsg = 'You need to specify the initial password'; |
|
break; |
|
case 'fsys': |
|
alertmsg = ''; |
|
break; |
|
default: |
|
alertmsg = ''; |
|
} |
|
if (alertmsg != '') { |
|
alert(alertmsg); |
return; |
return; |
} |
} |
} |
} |
if (vf.login[2].checked) { |
|
foundatype=1; |
|
//An argument is not required |
|
} |
|
if (foundatype==0) { |
|
alert('You need to set the login type'); |
|
return; |
|
} |
|
if (foundname==0) { message='No name fields specified. '; } |
if (foundname==0) { message='No name fields specified. '; } |
if (foundid==0) { message+='No ID or student number field specified. '; } |
if (foundid==0) { message+='No ID or student number field specified. '; } |
if (foundsec==0) { message+='No section or group field specified. '; } |
if (foundsec==0) { message+='No section or group field specified. '; } |
Line 213 function verify_message (vf,founduname,f
|
Line 221 function verify_message (vf,founduname,f
|
} |
} |
} |
} |
|
|
function setkrb(vf) { |
|
if (vf.krbdom.value!='') { |
|
clearpwd(vf); |
|
vf.login[0].checked=true; |
|
vf.krbdom.value=vf.krbdom.value.toUpperCase(); |
|
vf.intpwd.value=''; |
|
vf.locarg.value=''; |
|
} |
|
} |
|
|
|
function setint(vf) { |
|
if (vf.intpwd.value!='') { |
|
clearpwd(vf); |
|
vf.login[1].checked=true; |
|
vf.krbdom.value=''; |
|
vf.locarg.value=''; |
|
} |
|
} |
|
|
|
function setloc(vf) { |
|
if (vf.locarg.value!='') { |
|
vf.login[2].checked=true; |
|
vf.krbdom.value=''; |
|
vf.intpwd.value=''; |
|
} |
|
} |
|
|
|
function clickkrb(vf) { |
|
vf.krbdom.value='$krbdefdom'; |
|
clearpwd(vf); |
|
vf.intpwd.value=''; |
|
vf.locarg.value=''; |
|
} |
|
|
|
function clickint(vf) { |
|
vf.krbdom.value=''; |
|
vf.locarg.value=''; |
|
} |
|
|
|
function clickloc(vf) { |
|
vf.krbdom.value=''; |
|
vf.intpwd.value=''; |
|
} |
|
|
|
function pclose() { |
function pclose() { |
parmwin=window.open("/adm/rat/empty.html","LONCAPAparms", |
parmwin=window.open("/adm/rat/empty.html","LONCAPAparms", |
Line 284 function clickloc(vf) {
|
Line 249 function clickloc(vf) {
|
pclose(); |
pclose(); |
} |
} |
|
|
|
$authheader |
ENDPICK |
ENDPICK |
|
|
} |
} |
|
|
sub phase_two_javascript_forward_associate { |
sub phase_two_javascript_forward_associate { |
Line 336 function flip(vf,tf) {
|
Line 303 function flip(vf,tf) {
|
} |
} |
} |
} |
if (nw==9) { |
if (nw==9) { |
vf.login[1].checked=true; |
changed_radio('int',document.studentform); |
vf.intpwd.value=''; |
set_auth_radio_buttons('int',document.studentform); |
vf.krbdom.value=''; |
vf.intarg.value=''; |
|
vf.krbarg.value=''; |
vf.locarg.value=''; |
vf.locarg.value=''; |
} |
} |
} |
} |
Line 391 function flip(vf,tf) {
|
Line 359 function flip(vf,tf) {
|
} |
} |
// intial password specified, pick internal authentication |
// intial password specified, pick internal authentication |
if (tf==8 && nw!=0) { |
if (tf==8 && nw!=0) { |
vf.login[1].checked=true; |
changed_radio('int',document.studentform); |
vf.intpwd.value=''; |
set_auth_radio_buttons('int',document.studentform); |
vf.krbdom.value=''; |
vf.krbarg.value=''; |
|
vf.intarg.value=''; |
vf.locarg.value=''; |
vf.locarg.value=''; |
} |
} |
} |
} |
Line 409 ENDPICK
|
Line 378 ENDPICK
|
|
|
sub phase_two_end { |
sub phase_two_end { |
my ($r,$i,$keyfields,$defdom,$today,$halfyear)=@_; |
my ($r,$i,$keyfields,$defdom,$today,$halfyear)=@_; |
|
my %param = ( formname => 'document.studentform'); |
|
my $krbform = &Apache::loncommon::authform_kerberos(%param); |
|
my $intform = &Apache::loncommon::authform_internal(%param); |
|
my $locform = &Apache::loncommon::authform_local(%param); |
$r->print(<<ENDPICK); |
$r->print(<<ENDPICK); |
</table> |
</table> |
<input type=hidden name=nfields value=$i> |
<input type=hidden name=nfields value=$i> |
Line 416 sub phase_two_end {
|
Line 389 sub phase_two_end {
|
<h3>Login Type</h3> |
<h3>Login Type</h3> |
<p>Note: this will not take effect if the user already exists</p> |
<p>Note: this will not take effect if the user already exists</p> |
<p> |
<p> |
<input type="radio" name="login" value="krb" onClick="clickkrb(this.form);" /> |
$krbform |
Kerberos authenticated with domain |
|
<input type="text" size="10" name="krbdom" onChange="setkrb(this.form);" /> |
|
</p> |
</p> |
<p> |
<p> |
<input type="radio" name="login" value="int" onClick="clickint(this.form);" /> |
$intform |
Internally authenticated (with initial password |
|
<input type="text" size="10" name="intpwd" onChange="setint(this.form);" />) |
|
</p> |
</p> |
<p> |
<p> |
<input type="radio" name="login" value="loc" onClick="clickloc(this.form);" /> |
$locform |
Local Authentication with argument |
|
<input type="text" size="10" name="locarg" onChange="setloc(this.form);" /> |
|
</p> |
</p> |
<h3>LON-CAPA Domain for Students</h3> |
<h3>LON-CAPA Domain for Students</h3> |
LON-CAPA domain: <input type=text size=10 value=$defdom name=lcdomain><p> |
LON-CAPA domain: <input type=text size=10 value=$defdom name=lcdomain><p> |
Line 511 sub enroll_single_student {
|
Line 478 sub enroll_single_student {
|
my $genpwd=''; |
my $genpwd=''; |
if ($ENV{'form.login'} eq 'krb') { |
if ($ENV{'form.login'} eq 'krb') { |
$amode='krb4'; |
$amode='krb4'; |
$genpwd=$ENV{'form.krbdom'}; |
$genpwd=$ENV{'form.krbarg'}; |
} elsif ($ENV{'form.login'} eq 'int') { |
} elsif ($ENV{'form.login'} eq 'int') { |
$amode='internal'; |
$amode='internal'; |
$genpwd=$ENV{'form.intpwd'}; |
$genpwd=$ENV{'form.intarg'}; |
} elsif ($ENV{'form.login'} eq 'loc') { |
} elsif ($ENV{'form.login'} eq 'loc') { |
$amode='localauth'; |
$amode='localauth'; |
$genpwd=$ENV{'form.locarg'}; |
$genpwd=$ENV{'form.locarg'}; |
Line 547 sub menu_phase_two_enroll {
|
Line 514 sub menu_phase_two_enroll {
|
my $halfyear = $today+15552000; |
my $halfyear = $today+15552000; |
my $defdom=$r->dir_config('lonDefDomain'); |
my $defdom=$r->dir_config('lonDefDomain'); |
my $javascript_validations=&javascript_validations($krbdefdom); |
my $javascript_validations=&javascript_validations($krbdefdom); |
|
# Set up authentication forms |
|
my %param = ( formname => 'document.studentform'); |
|
my $krbform = &Apache::loncommon::authform_kerberos(%param); |
|
my $intform = &Apache::loncommon::authform_internal(%param); |
|
my $locform = &Apache::loncommon::authform_local(%param); |
|
# Print it all out |
$r->print(<<ENDSENROLL); |
$r->print(<<ENDSENROLL); |
<script> |
<script type="text/javascript" language="Javascript"> |
function verify(vf) { |
function verify(vf) { |
var founduname=0; |
var founduname=0; |
var foundpwd=0; |
var foundpwd=0; |
Line 599 Generation: <input type="text" name="cg
|
Line 572 Generation: <input type="text" name="cg
|
<p>Domain: <input type="text" name="cdomain" size="10" value="$defdom"></p> |
<p>Domain: <input type="text" name="cdomain" size="10" value="$defdom"></p> |
<p>Note: login settings below will not take effect if the user already exists |
<p>Note: login settings below will not take effect if the user already exists |
</p><p> |
</p><p> |
<input type="radio" name="login" value="krb" onClick="clickkrb(this.form);"> |
$krbform |
Kerberos authenticated with domain |
|
<input type="text" name="krbdom" size="10" onChange="setkrb(this.form);"> |
|
</p><p> |
</p><p> |
<input type="radio" name="login" value="int" onClick="clickint(this.form);"> |
$intform |
Internally authenticated (with initial password |
|
<input type="text" name="intpwd" size="10" onChange="setint(this.form);">) |
|
</p><p> |
</p><p> |
<input type="radio" name="login" value="loc" onClick="clickloc(this.form);" /> |
$locform |
Local Authentication with argument |
|
<input type="text" name="locarg" size="10" onChange="setloc(this.form);" /> |
|
</p><p> |
</p><p> |
<h3>Starting and Ending Dates</h3> |
<h3>Starting and Ending Dates</h3> |
<input type="hidden" value='' name="pres_value"> |
<input type="hidden" value='' name="pres_value"> |
Line 654 sub get_current_classlist {
|
Line 621 sub get_current_classlist {
|
$currentlist{$student}=1; |
$currentlist{$student}=1; |
} |
} |
} |
} |
return %currentlist; |
return (undef,%currentlist); |
} else { |
} else { |
return undef; |
return ($tmp,undef); |
} |
} |
} |
} |
|
|
Line 664 sub get_current_classlist {
|
Line 631 sub get_current_classlist {
|
sub menu_phase_two_drop { |
sub menu_phase_two_drop { |
my $r=shift; |
my $r=shift; |
my $cid=$ENV{'request.course.id'}; |
my $cid=$ENV{'request.course.id'}; |
my %currentlist=&get_current_classlist($ENV{'course.'.$cid.'.domain'}, |
my ($error,%currentlist)=&get_current_classlist($ENV{'course.'.$cid.'.domain'}, |
$ENV{'course.'.$cid.'.num'}); |
$ENV{'course.'.$cid.'.num'}); |
|
if (defined($error)) { |
|
$r->print('<pre>ERROR:$error</pre>'); |
|
} |
if (!defined(%currentlist)) { |
if (!defined(%currentlist)) { |
$r->print('<font color=red>'. |
$r->print("There are no students currently enrolled.\n"); |
'<h3> Could not access classlist.</h3></font>'); |
|
} else { |
} else { |
# Print out the available choices |
# Print out the available choices |
&show_drop_list($r,%currentlist); |
&show_drop_list($r,%currentlist); |
Line 746 sub upfile_drop_add {
|
Line 715 sub upfile_drop_add {
|
my $genpwd = ''; |
my $genpwd = ''; |
if ($ENV{'form.login'} eq 'krb') { |
if ($ENV{'form.login'} eq 'krb') { |
$amode='krb4'; |
$amode='krb4'; |
$genpwd=$ENV{'form.krbdom'}; |
$genpwd=$ENV{'form.krbarg'}; |
} elsif ($ENV{'form.login'} eq 'int') { |
} elsif ($ENV{'form.login'} eq 'int') { |
$amode='internal'; |
$amode='internal'; |
if ((defined($ENV{'form.intpwd'})) && ($ENV{'form.intpwd'})) { |
if ((defined($ENV{'form.intarg'})) && ($ENV{'form.intarg'})) { |
$genpwd=$ENV{'form.intpwd'}; |
$genpwd=$ENV{'form.intarg'}; |
} |
} |
} elsif ($ENV{'form.login'} eq 'loc') { |
} elsif ($ENV{'form.login'} eq 'loc') { |
$amode='localauth'; |
$amode='localauth'; |
Line 854 sub upfile_drop_add {
|
Line 823 sub upfile_drop_add {
|
if ($ENV{'form.fullup'} eq 'yes') { |
if ($ENV{'form.fullup'} eq 'yes') { |
$r->print('<h3>Dropping Students</h3>'); |
$r->print('<h3>Dropping Students</h3>'); |
# Get current classlist |
# Get current classlist |
my %currentlist=&get_current_classlist |
my ($error,%currentlist)=&get_current_classlist |
($ENV{'course.'.$cid.'.domain'}, |
($ENV{'course.'.$cid.'.domain'}, |
$ENV{'course.'.$cid.'.num'}); |
$ENV{'course.'.$cid.'.num'}); |
|
if (defined($error)) { |
|
$r->print('<pre>ERROR:$error</pre>'); |
|
} |
if (defined(%currentlist)) { |
if (defined(%currentlist)) { |
# Drop the students |
# Drop the students |
foreach (@studentdata) { |
foreach (@studentdata) { |
Line 870 sub upfile_drop_add {
|
Line 842 sub upfile_drop_add {
|
# Print out list of dropped students |
# Print out list of dropped students |
&show_drop_list($r,%currentlist); |
&show_drop_list($r,%currentlist); |
} else { |
} else { |
$r->print('<font color=red>'. |
$r->print("There are no students currently enrolled.\n"); |
'<h3>Could not access classlist</h3></font>'); |
|
} |
} |
} |
} |
} # end of unless |
} # end of unless |
Line 906 sub handler {
|
Line 877 sub handler {
|
# Start page |
# Start page |
$r->content_type('text/html'); |
$r->content_type('text/html'); |
$r->send_http_header; |
$r->send_http_header; |
&header($r); |
$r->print(&header()); |
# Phase one, initial screen |
# Phase one, initial screen |
unless ($ENV{'form.phase'}) { |
unless ($ENV{'form.phase'}) { |
&menu_phase_one($r); |
&menu_phase_one($r); |