--- loncom/interface/loncreateuser.pm 2006/11/21 21:38:44 1.134 +++ loncom/interface/loncreateuser.pm 2006/11/22 16:06:28 1.135 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.134 2006/11/21 21:38:44 raeburn Exp $ +# $Id: loncreateuser.pm,v 1.135 2006/11/22 16:06:28 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -99,8 +99,8 @@ sub initialize_authen_forms { sub my_custom_roles { my %returnhash=(); my %rolehash=&Apache::lonnet::dump('roles'); - foreach (keys %rolehash) { - if ($_=~/^rolesdef\_(\w+)$/) { + foreach my $key (keys %rolehash) { + if ($key=~/^rolesdef\_(\w+)$/) { $returnhash{$1}=$1; } } @@ -489,11 +489,11 @@ ENDFORMINFO my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain); my %incdomains; my %inccourses; - foreach (values(%Apache::lonnet::hostdom)) { - $incdomains{$_}=1; + foreach my $item (values(%Apache::lonnet::hostdom)) { + $incdomains{$item}=1; } - foreach (keys(%env)) { - if ($_=~/^user\.priv\.cm\.\/(\w+)\/(\w+)/) { + foreach my $key (keys(%env)) { + if ($key=~/^user\.priv\.cm\.\/(\w+)\/(\w+)/) { $inccourses{$1.'_'.$2}=1; } } @@ -576,27 +576,24 @@ ENDCHANGEUSER ['firstname','middlename','lastname','generation', 'portfolioquota'],$ccdomain,$ccuname); my %rolesdump=&Apache::lonnet::dump('roles',$ccdomain,$ccuname); - $r->print(< - - - - - -END - foreach ('firstname','middlename','lastname','generation') { + $r->print(' +
'. + &Apache::loncommon::start_data_table(). + &Apache::loncommon::start_data_table_header_row(). +''. + &Apache::loncommon::end_data_table_header_row(). + &Apache::loncommon::start_data_table_row()); + foreach my $item ('firstname','middlename','lastname','generation') { if (&Apache::lonnet::allowed('mau',$ccdomain)) { - $r->print(<<"END"); - + $r->print(<<"END"); + END } else { - $r->print(''); + $r->print(''); } } - $r->print(< -
$lt{'fn'}$lt{'mn'}$lt{'ln'}$lt{'gen'}
'.$lt{'fn'}.''.$lt{'mn'}.''.$lt{'ln'}.''.$lt{'gen'}.''.$userenv{$_}.''.$userenv{$item}.'
-END + $r->print(&Apache::loncommon::end_data_table_row(). + &Apache::loncommon::end_data_table()); # Build up table of user roles to allow revocation of a role. my ($tmp) = keys(%rolesdump); unless ($tmp =~ /^(con_lost|error)/i) { @@ -923,34 +920,38 @@ ENDNOPRIV 'ssd' => "Set Start Date", 'sed' => "Set End Date" ); - $r->print(<$lt{'cs'} - - - - - - -'. + ''. + ''."\n". + &Apache::loncommon::end_data_table_header_row()."\n". + &Apache::loncommon::start_data_table_row()."\n". + ' + + + + -'."\n". + &Apache::loncommon::end_data_table_row()."\n". + &Apache::loncommon::start_data_table_row()."\n". +' + + + - - - - - - - + - -
$lt{'act'}$lt{'rol'}$lt{'ext'}$lt{'sta'}$lt{'end'}
$lt{'cau'}$cudom\_$cuname + $r->print('

'.$lt{'cs'}.'

'."\n". + &Apache::loncommon::start_data_table()."\n". + &Apache::loncommon::start_data_table_header_row()."\n". + '
'.$lt{'act'}.''.$lt{'rol'}.''.$lt{'ext'}.''.$lt{'sta'}.''.$lt{'end'}.' + + '.$lt{'cau'}.''.$cudom.'_'.$cuname.' + '.$lt{'ssd'}.' $lt{'ssd'} +"javascript:pjump('."'date_end','End Date Co-Author',document.cu.end_$cudom\_$cuname\_ca.value,'end_$cudom\_$cuname\_ca','cu.pres','dateset'".')">'.$lt{'sed'}.''.$lt{'caa'}.''.$cudom.'_'.$cuname.' $lt{'sed'}
$lt{'caa'}$cudom\_$cuname -$lt{'ssd'} +"javascript:pjump('."'date_start','Start Date Assistant Co-Author',document.cu.start_$cudom\_$cuname\_aa.value,'start_$cudom\_$cuname\_aa','cu.pres','dateset'".')">'.$lt{'ssd'}.' $lt{'sed'}
-ENDCOAUTH +"javascript:pjump('."'date_end','End Date Assistant Co-Author',document.cu.end_$cudom\_$cuname\_aa.value,'end_$cudom\_$cuname\_aa','cu.pres','dateset'".')">'.$lt{'sed'}.''."\n". + &Apache::loncommon::end_data_table_row()."\n". + &Apache::loncommon::end_data_table()); } # # Domain level @@ -958,35 +959,37 @@ ENDCOAUTH my $num_domain_level = 0; my $domaintext = '

'.&mt('Domain Level').'

'. - ''. - ''; - foreach ( sort( keys(%incdomains))) { - my $thisdomain=$_; - foreach ('dc','li','dg','au','sc') { - if (&Apache::lonnet::allowed('c'.$_,$thisdomain)) { - my $plrole=&Apache::lonnet::plaintext($_); + &Apache::loncommon::start_data_table(). + &Apache::loncommon::start_data_table_header_row(). + ''. + ''. + &Apache::loncommon::end_data_table_header_row(); + foreach my $thisdomain ( sort( keys(%incdomains))) { + foreach my $role ('dc','li','dg','au','sc') { + if (&Apache::lonnet::allowed('c'.$role,$thisdomain)) { + my $plrole=&Apache::lonnet::plaintext($role); my %lt=&Apache::lonlocal::texthash( 'ssd' => "Set Start Date", 'sed' => "Set End Date" ); $num_domain_level ++; - $domaintext .= <<"ENDDROW"; - - - - - + + + - + - -ENDDROW +"javascript:pjump('."'date_end','End Date $plrole',document.cu.end_$thisdomain\_$role.value,'end_$thisdomain\_$role','cu.pres','dateset'".')">'.$lt{'sed'}.''. +&Apache::loncommon::end_data_table_row(); } } } - $domaintext.='
'.&mt('Activate').''.&mt('Role').''.&mt('Extent').''.&mt('Start').''.&mt('End').'
'.&mt('Activate').''.&mt('Role').''. + &mt('Extent').''.&mt('Start').''.&mt('End').'
$plrole$thisdomain + $domaintext .= +&Apache::loncommon::start_data_table_row(). +''.$plrole.''.$thisdomain.' $lt{'ssd'} +"javascript:pjump('."'date_start','Start Date $plrole',document.cu.start_$thisdomain\_$role.value,'start_$thisdomain\_$role','cu.pres','dateset'".')">'.$lt{'ssd'}.' $lt{'sed'}
'; + $domaintext.= &Apache::loncommon::end_data_table(); if ($num_domain_level > 0) { $r->print($domaintext); } @@ -1154,9 +1157,9 @@ ENDMODIFYUSERHEAD %userenv = (); } # Check to see if we need to change user information - foreach ('firstname','middlename','lastname','generation') { + foreach my $item ('firstname','middlename','lastname','generation') { # Strip leading and trailing whitespace - $env{'form.c'.$_} =~ s/(\s+$|^\s+)//g; + $env{'form.c'.$item} =~ s/(\s+$|^\s+)//g; } my ($quotachanged,$namechanged,$oldportfolioquota); my %changeHash; @@ -1261,11 +1264,11 @@ END ## my $now=time; $r->print('

'.&mt('Modifying Roles').'

'); - foreach (keys (%env)) { - next if (! $env{$_}); + foreach my $key (keys (%env)) { + next if (! $env{$key}); # Revoke roles - if ($_=~/^form\.rev/) { - if ($_=~/^form\.rev\:([^\_]+)\_([^\_\.]+)$/) { + if ($key=~/^form\.rev/) { + if ($key=~/^form\.rev\:([^\_]+)\_([^\_\.]+)$/) { # Revoke standard role $r->print(&mt('Revoking').' '.$2.' in '.$1.': '. &Apache::lonnet::revokerole($env{'form.ccdomain'}, @@ -1283,7 +1286,7 @@ END $env{'course.'.$cid.'.home'}).'
'); } } - if ($_=~/^form\.rev\:([^\_]+)\_cr\.cr\/(\w+)\/(\w+)\/(\w+)$/) { + if ($key=~/^form\.rev\:([^\_]+)\_cr\.cr\/(\w+)\/(\w+)\/(\w+)$/) { # Revoke custom role $r->print(&mt('Revoking custom role:'). ' '.$4.' by '.$3.'@'.$2.' in '.$1.': '. @@ -1291,8 +1294,8 @@ END $env{'form.ccuname'},$1,$2,$3,$4). '
'); } - } elsif ($_=~/^form\.del/) { - if ($_=~/^form\.del\:([^\_]+)\_([^\_\.]+)$/) { + } elsif ($key=~/^form\.del/) { + if ($key=~/^form\.del\:([^\_]+)\_([^\_\.]+)$/) { # Delete standard role $r->print(&mt('Deleting').' '.$2.' in '.$1.': '. &Apache::lonnet::assignrole($env{'form.ccdomain'}, @@ -1310,7 +1313,7 @@ END $env{'course.'.$cid.'.home'}).'
'); } } - if ($_=~/^form\.del\:([^\_]+)\_cr\.cr\/(\w+)\/(\w+)\/(\w+)$/) { + if ($key=~/^form\.del\:([^\_]+)\_cr\.cr\/(\w+)\/(\w+)\/(\w+)$/) { my ($url,$rdom,$rnam,$rolename) = ($1,$2,$3,$4); # Delete custom role $r->print(&mt('Deleting custom role [_1] by [_2]@[_3] in [_4]', @@ -1319,11 +1322,11 @@ END $env{'form.ccuname'},$url,$rdom,$rnam,$rolename,$now, 0,1).'
'); } - } elsif ($_=~/^form\.ren/) { + } elsif ($key=~/^form\.ren/) { my $udom = $env{'form.ccdomain'}; my $uname = $env{'form.ccuname'}; # Re-enable standard role - if ($_=~/^form\.ren\:([^\_]+)\_([^\_\.]+)$/) { + if ($key=~/^form\.ren\:([^\_]+)\_([^\_\.]+)$/) { my $url = $1; my $role = $2; my $logmsg; @@ -1349,7 +1352,7 @@ END $r->print($output); } # Re-enable custom role - if ($_=~/^form\.ren\:([^\_]+)\_cr\.cr\/(\w+)\/(\w+)\/(\w+)$/) { + if ($key=~/^form\.ren\:([^\_]+)\_cr\.cr\/(\w+)\/(\w+)\/(\w+)$/) { my ($url,$rdom,$rnam,$rolename) = ($1,$2,$3,$4); my $result = &Apache::lonnet::assigncustomrole( $env{'form.ccdomain'}, $env{'form.ccuname'}, @@ -1357,10 +1360,10 @@ END $r->print(&mt('Re-enabling custom role [_1] by [_2]@[_3] in [_4] : [_5]', $rolename,$rnam,$rdom,$url,$result).'
'); } - } elsif ($_=~/^form\.act/) { + } elsif ($key=~/^form\.act/) { my $udom = $env{'form.ccdomain'}; my $uname = $env{'form.ccuname'}; - if ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_cr_cr_([^\_]+)_(\w+)_([^\_]+)$/) { + if ($key=~/^form\.act\_([^\_]+)\_([^\_]+)\_cr_cr_([^\_]+)_(\w+)_([^\_]+)$/) { # Activate a custom role my ($one,$two,$three,$four,$five)=($1,$2,$3,$4,$5); my $url='/'.$one.'/'.$two; @@ -1391,7 +1394,7 @@ END $r->print(&Apache::loncommon::commit_customrole($udom,$uname,$securl,$three,$four,$five,$start,$end)); } } - } elsif ($_=~/^form\.act\_([^\_]+)\_(\w+)\_([^\_]+)$/) { + } elsif ($key=~/^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); @@ -1430,7 +1433,7 @@ END $r->print(&Apache::loncommon::commit_standardrole($udom,$uname,$url,$three,$start,$end,$one,$two,'')); } } - } elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)$/) { + } elsif ($key=~/^form\.act\_([^\_]+)\_([^\_]+)$/) { # Activate roles for sections with two id numbers # set start, end times, and the url for the class my $start = ( $env{'form.start_'.$1.'_'.$2} ? @@ -1460,7 +1463,7 @@ END } } } else { - $r->print('

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


'); + $r->print('

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


'); } foreach my $key (sort(keys(%disallowed))) { if (($key eq 'none') || ($key eq 'all')) { @@ -1549,8 +1552,8 @@ sub custom_role_editor { my %full=(); my %courselevel=(); my %courselevelcurrent=(); - foreach (split(/\:/,$Apache::lonnet::pr{'cr:c'})) { - my ($priv,$restrict)=split(/\&/,$_); + foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:c'})) { + my ($priv,$restrict)=split(/\&/,$item); unless ($restrict) { $restrict='F'; } $courselevel{$priv}=$restrict; if ($coursepriv=~/\:$priv/) { @@ -1560,8 +1563,8 @@ sub custom_role_editor { } my %domainlevel=(); my %domainlevelcurrent=(); - foreach (split(/\:/,$Apache::lonnet::pr{'cr:d'})) { - my ($priv,$restrict)=split(/\&/,$_); + foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:d'})) { + my ($priv,$restrict)=split(/\&/,$item); unless ($restrict) { $restrict='F'; } $domainlevel{$priv}=$restrict; if ($dompriv=~/\:$priv/) { @@ -1571,8 +1574,8 @@ sub custom_role_editor { } my %systemlevel=(); my %systemlevelcurrent=(); - foreach (split(/\:/,$Apache::lonnet::pr{'cr:s'})) { - my ($priv,$restrict)=split(/\&/,$_); + foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:s'})) { + my ($priv,$restrict)=split(/\&/,$item); unless ($restrict) { $restrict='F'; } $systemlevel{$priv}=$restrict; if ($syspriv=~/\:$priv/) { @@ -1590,13 +1593,16 @@ sub custom_role_editor {
- - - ENDCCF + $r->print(&Apache::loncommon::start_data_table(). + &Apache::loncommon::start_data_table_header_row(). +''. + &Apache::loncommon::end_data_table_header_row()); foreach my $priv (sort keys %full) { my $privtext = &Apache::lonnet::plaintext($priv); - $r->print(''); + ''. + &Apache::loncommon::end_data_table_row()); } - $r->print( - '
$lt{'prv'}$lt{'crl'}$lt{'dml'}$lt{'ssl'}
'.$lt{'prv'}.''.$lt{'crl'}.''.$lt{'dml'}. +''.$lt{'ssl'}.'
'.$privtext.''. + $r->print(&Apache::loncommon::start_data_table_row(). + ''.$privtext.''. ($courselevel{$priv}?'':' '). ''. @@ -1605,10 +1611,11 @@ ENDCCF ''. ($systemlevel{$priv}?'':' '). - '
'. + $r->print(&Apache::loncommon::end_data_table(). + ''. &Apache::loncommon::end_page()); } @@ -1642,27 +1649,27 @@ sub set_custom_role { my $domrole=''; my $courole=''; - foreach (split(/\:/,$Apache::lonnet::pr{'cr:c'})) { - my ($priv,$restrict)=split(/\&/,$_); + foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:c'})) { + my ($priv,$restrict)=split(/\&/,$item); unless ($restrict) { $restrict=''; } if ($env{'form.'.$priv.':c'}) { - $courole.=':'.$_; + $courole.=':'.$item; } } - foreach (split(/\:/,$Apache::lonnet::pr{'cr:d'})) { - my ($priv,$restrict)=split(/\&/,$_); + foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:d'})) { + my ($priv,$restrict)=split(/\&/,$item); unless ($restrict) { $restrict=''; } if ($env{'form.'.$priv.':d'}) { - $domrole.=':'.$_; + $domrole.=':'.$item; } } - foreach (split(/\:/,$Apache::lonnet::pr{'cr:s'})) { - my ($priv,$restrict)=split(/\&/,$_); + foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:s'})) { + my ($priv,$restrict)=split(/\&/,$item); unless ($restrict) { $restrict=''; } if ($env{'form.'.$priv.':s'}) { - $sysrole.=':'.$_; + $sysrole.=':'.$item; } } $r->print('
Defining Role: '. @@ -1741,14 +1748,13 @@ sub course_level_table { 'end' => "End" ); - foreach (sort( keys(%inccourses))) { - my $thiscourse=$_; - my $protectedcourse=$_; + foreach my $protectedcourse (sort( keys(%inccourses))) { + my $thiscourse=$protectedcourse; $thiscourse=~s:_:/:g; my %coursedata=&Apache::lonnet::coursedescription($thiscourse); my $area=$coursedata{'description'}; my $type=$coursedata{'type'}; - if (!defined($area)) { $area=&mt('Unavailable course').': '.$_; } + if (!defined($area)) { $area=&mt('Unavailable course').': '.$protectedcourse; } my $bgcol=$thiscourse; $bgcol=~s/[^7-9a-e]//g; $bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6); @@ -1760,49 +1766,49 @@ sub course_level_table { &Apache::loncommon::get_sections($domain,$cnum); } } - foreach ('st','ta','ep','in','cc') { - if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) { - my $plrole=&Apache::lonnet::plaintext($_); + foreach my $role ('st','ta','ep','in','cc') { + if (&Apache::lonnet::allowed('c'.$role,$thiscourse)) { + my $plrole=&Apache::lonnet::plaintext($role); $table .= < - + ENDEXTENT - if ($_ ne 'cc') { + if ($role ne 'cc') { if (%sections_count) { - my $currsec = &course_sections(\%sections_count,$protectedcourse.'_'.$_); + my $currsec = &course_sections(\%sections_count,$protectedcourse.'_'.$role); $table .= ''; } else { $table .= ''; + 'name="sec_'.$protectedcourse.'_'.$role.'">'; } } else { $table .= ''; } $table .= < + - + +"javascript:pjump('date_end','End Date $plrole',document.cu.end_$protectedcourse\_$role.value,'end_$protectedcourse\_$role','cu.pres','dateset')">$lt{'sed'} ENDTIMEENTRY $table.= "\n"; } } - foreach (sort keys %customroles) { + foreach my $cust (sort keys %customroles) { if (&Apache::lonnet::allowed('ccr',$thiscourse)) { - my $plrole=$_; + my $plrole=$cust; my $customrole=$protectedcourse.'_cr_cr_'.$env{'user.domain'}. '_'.$env{'user.name'}.'_'.$plrole; $table .= <'."\n"; - foreach (@sections) { - $output .= '\n"; + foreach my $sec (@sections) { + $output .= '\n"; } } $output .= ''; @@ -1901,15 +1907,15 @@ sub course_level_dc { ''."\n". ''."\n". '
$plrole $area
Domain: $domain
'. ''. ''. ''. + ''. ''. + 'name="sec_'.$protectedcourse.'_'.$role.'">'. '
'.$lt{'exs'}.'
'. $currsec.'
   '.$lt{'new'}.'
'. - '
  $lt{'ssd'} +"javascript:pjump('date_start','Start Date $plrole',document.cu.start_$protectedcourse\_$role.value,'start_$protectedcourse\_$role','cu.pres','dateset')">$lt{'ssd'} $lt{'sed'}
'.