Diff for /loncom/interface/loncreateuser.pm between versions 1.92 and 1.99

version 1.92, 2004/12/28 05:01:44 version 1.99, 2005/01/30 15:34:46
Line 73  my $authformint; Line 73  my $authformint;
 my $authformfsys;  my $authformfsys;
 my $authformloc;  my $authformloc;
   
 BEGIN {  sub initialize_authen_forms {
     $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/;      my ($krbdefdom)=( $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/);
     my $krbdefdom=$1;      $krbdefdom= uc($krbdefdom);
     $krbdefdom=~tr/a-z/A-Z/;  
     my %param = ( formname => 'document.cu',      my %param = ( formname => 'document.cu',
                   kerb_def_dom => $krbdefdom                     kerb_def_dom => $krbdefdom 
                   );                    );
Line 174  sub print_user_modification_page { Line 173  sub print_user_modification_page {
     my $ccuname=$ENV{'form.ccuname'};      my $ccuname=$ENV{'form.ccuname'};
     my $ccdomain=$ENV{'form.ccdomain'};      my $ccdomain=$ENV{'form.ccdomain'};
   
     $ccuname=~s/[\W|_]//gs;      $ccuname=~s/\W//g;
     $ccdomain=~s/[\W|_]//gs;      $ccdomain=~s/\W//g;
   
     unless (($ccuname) && ($ccdomain)) {      unless (($ccuname) && ($ccdomain)) {
  &print_username_entry_form($r);   &print_username_entry_form($r);
Line 397  ENDFORMINFO Line 396  ENDFORMINFO
                     'lg'   => "Login Data"                      'lg'   => "Login Data"
        );         );
  my $genhelp=&Apache::loncommon::help_open_topic('Generation');   my $genhelp=&Apache::loncommon::help_open_topic('Generation');
           &initialize_authen_forms();
  $r->print(<<ENDNEWUSER);   $r->print(<<ENDNEWUSER);
 $dochead  $dochead
 <h1>$lt{'cnu'}</h1>  <h1>$lt{'cnu'}</h1>
Line 674  END Line 674  END
  $currentauth=~/^localauth:/   $currentauth=~/^localauth:/
  ) { # bad authentication scheme   ) { # bad authentication scheme
     if (&Apache::lonnet::allowed('mau',$ENV{'request.role.domain'})) {      if (&Apache::lonnet::allowed('mau',$ENV{'request.role.domain'})) {
                   &initialize_authen_forms();
  my %lt=&Apache::lonlocal::texthash(   my %lt=&Apache::lonlocal::texthash(
                                'err'   => "ERROR",                                 'err'   => "ERROR",
        'uuas'  => "This user has an unrecognized authentication scheme",         'uuas'  => "This user has an unrecognized authentication scheme",
Line 715  ENDBADAUTH Line 716  ENDBADAUTH
         } else { # Authentication type is valid          } else { # Authentication type is valid
     my $authformcurrent='';      my $authformcurrent='';
     my $authform_other='';      my $authform_other='';
               &initialize_authen_forms();
     if ($currentauth=~/^krb(4|5):/) {      if ($currentauth=~/^krb(4|5):/) {
  $authformcurrent=$authformkrb;   $authformcurrent=$authformkrb;
  $authform_other="<p>$authformint</p>\n".   $authform_other="<p>$authformint</p>\n".
Line 1124  END Line 1126  END
  }   }
     }       } 
  } elsif ($_=~/^form\.ren/) {   } elsif ($_=~/^form\.ren/) {
               my $udom = $ENV{'form.ccdomain'};
               my $uname = $ENV{'form.ccuname'};
     if ($_=~/^form\.ren\:([^\_]+)\_([^\_]+)$/) {      if ($_=~/^form\.ren\:([^\_]+)\_([^\_]+)$/) {
                 my $url = $1;                  my $url = $1;
                 my $role = $2;                  my $role = $2;
Line 1131  END Line 1135  END
                 my $output;                  my $output;
                 if ($role eq 'st') {                  if ($role eq 'st') {
                     if ($url =~ m-^/(\w+)/(\w+)/?(\w*)$-) {                      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')) {                          if (($result =~ /^error/) || ($result eq 'not_in_class') || ($result eq 'unknown_course')) {
                             $output = "Error: $result\n";                              $output = "Error: $result\n";
                         } else {                          } else {
Line 1150  END Line 1154  END
                 $r->print($output);                  $r->print($output);
     }       } 
  } elsif ($_=~/^form\.act/) {   } elsif ($_=~/^form\.act/) {
               my $udom = $ENV{'form.ccdomain'};
               my $uname = $ENV{'form.ccuname'};
     if ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_cr_cr_([^\_]+)_(\w+)_([^\_]+)$/) {      if ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_cr_cr_([^\_]+)_(\w+)_([^\_]+)$/) {
                 # Activate a custom role                  # Activate a custom role
  my ($one,$two,$three,$four,$five)=($1,$2,$3,$4,$5);   my ($one,$two,$three,$four,$five)=($1,$2,$3,$4,$5);
Line 1167  END Line 1173  END
                 my %sections = ();                  my %sections = ();
                 my $num_sections = &build_roles($ENV{'form.sec_'.$full},\%sections,$5);                  my $num_sections = &build_roles($ENV{'form.sec_'.$full},\%sections,$5);
                 if ($num_sections == 0) {                  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 {                  } else {
                     foreach (sort {$a cmp $b} keys %sections) {                      foreach (sort {$a cmp $b} keys %sections) {
                         my $securl = $url.'/'.$_;                          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   # Activate roles for sections with 3 id numbers
  # set start, end times, and the url for the class   # set start, end times, and the url for the class
  my ($one,$two,$three)=($1,$2,$3);   my ($one,$two,$three)=($1,$2,$3);
Line 1190  END Line 1196  END
                 my %sections = ();                  my %sections = ();
                 my $num_sections = &build_roles($ENV{'form.sec_'.$one.'_'.$two.'_'.$three},\%sections,$three);                  my $num_sections = &build_roles($ENV{'form.sec_'.$one.'_'.$two.'_'.$three},\%sections,$three);
                 if ($num_sections == 0) {                  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 {                  } else {
                     my $emptysec = 0;                      my $emptysec = 0;
                     foreach my $sec (sort {$a cmp $b} keys %sections) {                      foreach my $sec (sort {$a cmp $b} keys %sections) {
                         $sec =~ s/\W//g;                          $sec =~ s/\W//g;
                         if ($sec ne '') {                            if ($sec ne '') {  
                             my $securl = $url.'/'.$sec;                              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 {                          } else {
                             $emptysec = 1;                              $emptysec = 1;
                         }                          }
                     }                      }
                     if ($emptysec) {                      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\_([^\_]+)\_([^\_]+)$/) {      } elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)$/) {
Line 1220  END Line 1226  END
                 my %sections = ();                  my %sections = ();
                 my $num_sections = &build_roles($ENV{'form.sec_'.$1.'_'.$2},\%sections,$2);                  my $num_sections = &build_roles($ENV{'form.sec_'.$1.'_'.$2},\%sections,$2);
                 if ($num_sections == 0) {                  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 {                  } else {
                     my $emptysec = 0;                      my $emptysec = 0;
                     foreach my $sec (sort {$a cmp $b} keys %sections) {                      foreach my $sec (sort {$a cmp $b} keys %sections) {
                         if ($sec ne '') {                          if ($sec ne '') {
                             my $securl = $url.'/'.$sec;                              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 {                          } else {
                             $emptysec = 1;                              $emptysec = 1;
                         }                          }
                     }                      }
                     if ($emptysec) {                      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):'').': <b>'.  
                           &Apache::lonnet::assignrole(  
                               $ENV{'form.ccdomain'},$ENV{'form.ccuname'},  
                               $url,$2,$end,$start)  
   .'</b><br>');  
     } else {      } else {
  $r->print('<p>'.&mt('ERROR').': '.&mt('Unknown command').' <tt>'.$_.'</tt></p><br>');   $r->print('<p>'.&mt('ERROR').': '.&mt('Unknown command').' <tt>'.$_.'</tt></p><br>');
             }              }
Line 1254  END Line 1252  END
 }  }
   
 sub commit_customrole {  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.      my $output = &mt('Assigning custom role').' "'.$five.'" by '.$four.'@'.$three.' in '.$url.
                          ($start?', '.&mt('starting').' '.localtime($start):'').                           ($start?', '.&mt('starting').' '.localtime($start):'').
                          ($end?', ending '.localtime($end):'').': <b>'.                           ($end?', ending '.localtime($end):'').': <b>'.
               &Apache::lonnet::assigncustomrole(                &Apache::lonnet::assigncustomrole(
         $ENV{'form.ccdomain'},$ENV{'form.ccuname'},$url,$three,$four,$five,$end,$start).                   $udom,$uname,$url,$three,$four,$five,$end,$start).
               '</b><br>';                   '</b><br>';
     return $output;      return $output;
 }  }
   
 sub commit_standardrole {  sub commit_standardrole {
     my ($url,$three,$start,$end,$one,$two,$sec) = @_;      my ($udom,$uname,$url,$three,$start,$end,$one,$two,$sec) = @_;
     my $output;      my $output;
     my $logmsg;      my $logmsg;
     if ($three eq 'st') {      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')) {          if (($result =~ /^error/) || ($result eq 'not_in_class') || ($result eq 'unknown_course')) {
             $output = "Error: $result\n";               $output = "Error: $result\n"; 
         } else {          } else {
Line 1284  sub commit_standardrole { Line 1282  sub commit_standardrole {
                ($start?', '.&mt('starting').' '.localtime($start):'').                 ($start?', '.&mt('starting').' '.localtime($start):'').
                ($end?', '.&mt('ending').' '.localtime($end):'').': <b>'.                 ($end?', '.&mt('ending').' '.localtime($end):'').': <b>'.
                &Apache::lonnet::assignrole(                 &Apache::lonnet::assignrole(
                    $ENV{'form.ccdomain'},$ENV{'form.ccuname'},                     $udom,$uname,$url,$three,$end,$start).
                    $url,$three,$end,$start).  
                    '</b><br>';                     '</b><br>';
     }      }
     return $output;      return $output;
 }  }
   
 sub commit_studentrole {  sub commit_studentrole {
     my ($logmsg,$url,$three,$start,$end,$one,$two,$sec) = @_;      my ($logmsg,$udom,$uname,$url,$three,$start,$end,$one,$two,$sec) = @_;
     my $udom = $ENV{'form.ccdomain'};  
     my $uname = $ENV{'form.ccuname'};  
     my $linefeed =  '<br />'."\n";      my $linefeed =  '<br />'."\n";
     my $result;      my $result;
     if (defined($one) && defined($two)) {      if (defined($one) && defined($two)) {
Line 1714  sub course_sections { Line 1709  sub course_sections {
     if ($num_sections == 1) {      if ($num_sections == 1) {
         $output = '<select name="currsec_'.$role.'" >'."\n".          $output = '<select name="currsec_'.$role.'" >'."\n".
                   '  <option value="">Select</option>'."\n".                    '  <option value="">Select</option>'."\n".
                     '  <option value="">No section</option>'."\n".
                   '  <option value="'.$sections[0].'" >'.$sections[0].'</option>'."\n";                    '  <option value="'.$sections[0].'" >'.$sections[0].'</option>'."\n";
     } else {      } else {
         $output = '<select name="currsec_'.$role.'" ';          $output = '<select name="currsec_'.$role.'" ';
         my $multiple = 4;          my $multiple = 4;
         if ($num_sections <4) { $multiple = $num_sections; }          if ($num_sections <4) { $multiple = $num_sections; }
         $output .= '"multiple size="'.$multiple.'" >'."\n";          $output .= '"multiple" size="'.$multiple.'">'."\n";
         foreach (@sections) {          foreach (@sections) {
             $output .= '<option value="'.$_.'">'.$_."</option>\n";              $output .= '<option value="'.$_.'">'.$_."</option>\n";
         }          }

Removed from v.1.92  
changed lines
  Added in v.1.99


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