--- loncom/interface/loncreateuser.pm 2004/11/30 00:21:24 1.89 +++ loncom/interface/loncreateuser.pm 2005/01/30 15:34:46 1.99 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.89 2004/11/30 00:21:24 raeburn Exp $ +# $Id: loncreateuser.pm,v 1.99 2005/01/30 15:34:46 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -73,10 +73,9 @@ my $authformint; my $authformfsys; my $authformloc; -BEGIN { - $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/; - my $krbdefdom=$1; - $krbdefdom=~tr/a-z/A-Z/; +sub initialize_authen_forms { + my ($krbdefdom)=( $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/); + $krbdefdom= uc($krbdefdom); my %param = ( formname => 'document.cu', kerb_def_dom => $krbdefdom ); @@ -174,8 +173,8 @@ sub print_user_modification_page { my $ccuname=$ENV{'form.ccuname'}; my $ccdomain=$ENV{'form.ccdomain'}; - $ccuname=~s/[\W|_]//gs; - $ccdomain=~s/[\W|_]//gs; + $ccuname=~s/\W//g; + $ccdomain=~s/\W//g; unless (($ccuname) && ($ccdomain)) { &print_username_entry_form($r); @@ -211,7 +210,7 @@ sub print_user_modification_page { return; } var userrole = document.cu.role.options[document.cu.role.selectedIndex].value - var section; + var section=""; var numsections = 0; for (var i=0; i "Login Data" ); my $genhelp=&Apache::loncommon::help_open_topic('Generation'); + &initialize_authen_forms(); $r->print(<$lt{'cnu'} @@ -674,6 +674,7 @@ END $currentauth=~/^localauth:/ ) { # bad authentication scheme if (&Apache::lonnet::allowed('mau',$ENV{'request.role.domain'})) { + &initialize_authen_forms(); my %lt=&Apache::lonlocal::texthash( 'err' => "ERROR", 'uuas' => "This user has an unrecognized authentication scheme", @@ -715,6 +716,7 @@ ENDBADAUTH } else { # Authentication type is valid my $authformcurrent=''; my $authform_other=''; + &initialize_authen_forms(); if ($currentauth=~/^krb(4|5):/) { $authformcurrent=$authformkrb; $authform_other="

$authformint

\n". @@ -1124,6 +1126,8 @@ END } } } elsif ($_=~/^form\.ren/) { + my $udom = $ENV{'form.ccdomain'}; + my $uname = $ENV{'form.ccuname'}; if ($_=~/^form\.ren\:([^\_]+)\_([^\_]+)$/) { my $url = $1; my $role = $2; @@ -1131,7 +1135,7 @@ END my $output; if ($role eq 'st') { if ($url =~ m-^/(\w+)/(\w+)/?(\w*)$-) { - my $result = &commit_studentrole(\$logmsg,$url,$role,$now,0,$1,$2,$3); + my $result = &commit_studentrole(\$logmsg,$udom,$uname,$url,$role,$now,0,$1,$2,$3); if (($result =~ /^error/) || ($result eq 'not_in_class') || ($result eq 'unknown_course')) { $output = "Error: $result\n"; } else { @@ -1150,6 +1154,8 @@ END $r->print($output); } } elsif ($_=~/^form\.act/) { + my $udom = $ENV{'form.ccdomain'}; + my $uname = $ENV{'form.ccuname'}; if ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_cr_cr_([^\_]+)_(\w+)_([^\_]+)$/) { # Activate a custom role my ($one,$two,$three,$four,$five)=($1,$2,$3,$4,$5); @@ -1167,14 +1173,14 @@ END my %sections = (); my $num_sections = &build_roles($ENV{'form.sec_'.$full},\%sections,$5); if ($num_sections == 0) { - $r->print(&commit_customrole($url,$three,$four,$five,$start,$end)); + $r->print(&commit_customrole($udom,$uname,$url,$three,$four,$five,$start,$end)); } else { foreach (sort {$a cmp $b} keys %sections) { my $securl = $url.'/'.$_; - $r->print(&commit_customrole($securl,$three,$four,$five,$start,$end)); + $r->print(&commit_customrole($udom,$uname,$securl,$three,$four,$five,$start,$end)); } } - } elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_([^\_]+)$/) { + } elsif ($_=~/^form\.act\_([^\_]+)\_(\w+)\_([^\_]+)$/) { # Activate roles for sections with 3 id numbers # set start, end times, and the url for the class my ($one,$two,$three)=($1,$2,$3); @@ -1190,20 +1196,20 @@ END my %sections = (); my $num_sections = &build_roles($ENV{'form.sec_'.$one.'_'.$two.'_'.$three},\%sections,$three); if ($num_sections == 0) { - $r->print(&commit_standardrole($url,$three,$start,$end,$one,$two,'')); + $r->print(&commit_standardrole($udom,$uname,$url,$three,$start,$end,$one,$two,'')); } else { my $emptysec = 0; foreach my $sec (sort {$a cmp $b} keys %sections) { $sec =~ s/\W//g; if ($sec ne '') { my $securl = $url.'/'.$sec; - $r->print(&commit_standardrole($securl,$three,$start,$end,$one,$two,$sec)); + $r->print(&commit_standardrole($udom,$uname,$securl,$three,$start,$end,$one,$two,$sec)); } else { $emptysec = 1; } } if ($emptysec) { - $r->print(&commit_standardrole($url,$three,$start,$end,$one,$two,'')); + $r->print(&commit_standardrole($udom,$uname,$url,$three,$start,$end,$one,$two,'')); } } } elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)$/) { @@ -1220,29 +1226,21 @@ END my %sections = (); my $num_sections = &build_roles($ENV{'form.sec_'.$1.'_'.$2},\%sections,$2); if ($num_sections == 0) { - $r->print(&commit_standardrole($url,$2,$start,$end,$1,undef,'')); + $r->print(&commit_standardrole($udom,$uname,$url,$2,$start,$end,$1,undef,'')); } else { my $emptysec = 0; foreach my $sec (sort {$a cmp $b} keys %sections) { if ($sec ne '') { my $securl = $url.'/'.$sec; - $r->print(&commit_standardrole($securl,$2,$start,$end,$1,undef,$sec)); + $r->print(&commit_standardrole($udom,$uname,$securl,$2,$start,$end,$1,undef,$sec)); } else { $emptysec = 1; } } if ($emptysec) { - $r->print(&commit_standardrole($url,$2,$start,$end,$1,undef,'')); + $r->print(&commit_standardrole($udom,$uname,$url,$2,$start,$end,$1,undef,'')); } } - # Assign the role and report it. - $r->print(&mt('Assigning').' '.$2.' in '.$url.': '. - ($start?', '.&mt('starting').' '.localtime($start):''). - ($end?', '.&mt('ending').' '.localtime($end):'').': '. - &Apache::lonnet::assignrole( - $ENV{'form.ccdomain'},$ENV{'form.ccuname'}, - $url,$2,$end,$start) - .'
'); } else { $r->print('

'.&mt('ERROR').': '.&mt('Unknown command').' '.$_.'


'); } @@ -1254,22 +1252,22 @@ END } sub commit_customrole { - my ($url,$three,$four,$five,$end,$start) = @_; + my ($udom,$uname,$url,$three,$four,$five,$start,$end) = @_; my $output = &mt('Assigning custom role').' "'.$five.'" by '.$four.'@'.$three.' in '.$url. ($start?', '.&mt('starting').' '.localtime($start):''). ($end?', ending '.localtime($end):'').': '. &Apache::lonnet::assigncustomrole( - $ENV{'form.ccdomain'},$ENV{'form.ccuname'},$url,$three,$four,$five,$end,$start). - '
'; + $udom,$uname,$url,$three,$four,$five,$end,$start). + '
'; return $output; } sub commit_standardrole { - my ($url,$three,$start,$end,$one,$two,$sec) = @_; + my ($udom,$uname,$url,$three,$start,$end,$one,$two,$sec) = @_; my $output; my $logmsg; if ($three eq 'st') { - my $result = &commit_studentrole(\$logmsg,$url,$three,$start,$end,$one,$two,$sec); + my $result = &commit_studentrole(\$logmsg,$udom,$uname,$url,$three,$start,$end,$one,$two,$sec); if (($result =~ /^error/) || ($result eq 'not_in_class') || ($result eq 'unknown_course')) { $output = "Error: $result\n"; } else { @@ -1280,21 +1278,18 @@ sub commit_standardrole { &mt('Add to classlist').': ok
'; } } else { - $output = (&mt('Assigning').' '.$three.' in '.$url. + $output = &mt('Assigning').' '.$three.' in '.$url. ($start?', '.&mt('starting').' '.localtime($start):''). ($end?', '.&mt('ending').' '.localtime($end):'').': '. &Apache::lonnet::assignrole( - $ENV{'form.ccdomain'},$ENV{'form.ccuname'}, - $url,$three,$end,$start). - '
'); + $udom,$uname,$url,$three,$end,$start). + '
'; } return $output; } sub commit_studentrole { - my ($logmsg,$url,$three,$start,$end,$one,$two,$sec) = @_; - my $udom = $ENV{'form.ccdomain'}; - my $uname = $ENV{'form.ccuname'}; + my ($logmsg,$udom,$uname,$url,$three,$start,$end,$one,$two,$sec) = @_; my $linefeed = '
'."\n"; my $result; if (defined($one) && defined($two)) { @@ -1611,7 +1606,12 @@ sub course_level_table { $bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6); my ($domain,$cnum)=split(/\//,$thiscourse); my %sections_count = (); - my $num_sections = &Apache::loncommon::get_sections($domain,$cnum,\%sections_count); + my $num_sections = 0; + if (defined($ENV{'request.course.id'})) { + if ($ENV{'request.course.id'} eq $domain.'_'.$cnum) { + $num_sections = &Apache::loncommon::get_sections($domain,$cnum,\%sections_count); + } + } foreach ('st','ta','ep','ad','in','cc') { if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) { my $plrole=&Apache::lonnet::plaintext($_); @@ -1706,12 +1706,19 @@ sub course_sections { my ($num_sections,$sections_count,$role) = @_; my $output = ''; my @sections = (sort {$a <=> $b} keys %{$sections_count}); - $output = ''."\n". + ' '."\n". + ' '."\n". + ' '."\n"; + } else { + $output = ''; return $output;