Diff for /loncom/interface/lonuserutils.pm between versions 1.109.2.7 and 1.109.2.12

version 1.109.2.7, 2010/11/08 21:11:14 version 1.109.2.12, 2010/12/05 17:28:10
Line 566  END Line 566  END
         if (message!='') {          if (message!='') {
             message+='\\n';              message+='\\n';
         }          }
           message+='$alert{'section'}';
     }      }
     if (foundemail==0) {      if (foundemail==0) {
         if (message!='') {          if (message!='') {
Line 629  END Line 630  END
 ###############################################################  ###############################################################
 sub upload_manager_javascript_forward_associate {  sub upload_manager_javascript_forward_associate {
     my ($can_assign) = @_;      my ($can_assign) = @_;
     my $auth_update;      my ($auth_update,$numbuttons,$argreset);
     if (ref($can_assign) eq 'HASH') {      if (ref($can_assign) eq 'HASH') {
         if (keys(%{$can_assign}) > 1) {          if ($can_assign->{'krb4'} || $can_assign->{'krb5'}) {
               $argreset .= "      vf.krbarg.value='';\n";
               $numbuttons ++ ;
           }
           if ($can_assign->{'int'}) {
               $argreset .= "      vf.intarg.value='';\n";
               $numbuttons ++;
           }
           if ($can_assign->{'loc'}) {
               $argreset .= "      vf.locarg.value='';\n";
               $numbuttons ++;
           }
           if (!$can_assign->{'int'}) {
               my $warning = &mt('You may not specify an initial password for each user, as this is only available when new users use LON-CAPA internal authentication.\n').
                             &mt('Your current role does not have rights to create users with that authentication type.');
               $auth_update = <<"END";
      // Currently the initial password field is only supported for internal auth
      // (see bug 6368).
      if (nw==2) {
          eval('vf.f'+tf+'.selectedIndex=0;')
          alert('$warning');
      }
   END
           } elsif ($numbuttons > 1) {
             $auth_update = <<"END";              $auth_update = <<"END";
    // If we set the password, make the password form below correspond to     // If we set the password, make the password form below correspond to
    // the new value.     // the new value.
    if (nw==9) {     if (nw==2) {
       changed_radio('int',document.studentform);        changed_radio('int',document.studentform);
       set_auth_radio_buttons('int',document.studentform);        set_auth_radio_buttons('int',document.studentform);
   $argreset
      }
   
 END  END
         }          }
         if ($can_assign->{'krb'}) {  
            $auth_update .= "      vf.krbarg.value='';\n";  
         }  
         if ($can_assign->{'int'}) {  
            $auth_update .= "      vf.intarg.value='';\n";  
         }  
         if ($can_assign->{'loc'}) {  
            $auth_update .= "     vf.locarg.value='';\n";  
         }  
         $auth_update .= "  
    }\n";  
     }      }
   
     return(<<ENDPICK);      return(<<ENDPICK);
Line 668  function verify(vf,sec_caller) { Line 684  function verify(vf,sec_caller) {
     for (i=0;i<=vf.nfields.value;i++) {      for (i=0;i<=vf.nfields.value;i++) {
         tw=eval('vf.f'+i+'.selectedIndex');          tw=eval('vf.f'+i+'.selectedIndex');
         if (tw==1) { founduname=1; }          if (tw==1) { founduname=1; }
         if ((tw>=2) && (tw<=6)) { foundname=1; }          if (tw==2) { foundpwd=1; }
         if (tw==7) { foundid=1; }          if ((tw>=3) && (tw<=7)) { foundname=1; }
         if (tw==8) { foundsec=1; }          if (tw==8) { foundid=1; }
         if (tw==9) { foundpwd=1; }          if (tw==9) { foundsec=1; }
         if (tw==10) { foundemail=1; }          if (tw==10) { foundemail=1; }
         if (tw==11) { foundrole=1; }          if (tw==11) { foundrole=1; }
         if (tw==12) { founddomain=1; }          if (tw==12) { founddomain=1; }
Line 748  ENDPICK Line 764  ENDPICK
 ###############################################################  ###############################################################
 sub upload_manager_javascript_reverse_associate {  sub upload_manager_javascript_reverse_associate {
     my ($can_assign) = @_;      my ($can_assign) = @_;
     my $auth_update;      my ($auth_update,$numbuttons,$argreset);
     if (ref($can_assign) eq 'HASH') {      if (ref($can_assign) eq 'HASH') {
         if (keys(%{$can_assign}) > 1) {          if ($can_assign->{'krb4'} || $can_assign->{'krb5'}) {
             $auth_update = <<"END";              $argreset .= "      vf.krbarg.value='';\n";
     // initial password specified, pick internal authentication              $numbuttons ++ ;
     if (tf==8 && nw!=0) {  
         changed_radio('int',document.studentform);  
         set_auth_radio_buttons('int',document.studentform);  
 END  
         }  
         if ($can_assign->{'krb'}) {  
            $auth_update .= "        vf.krbarg.value='';\n";  
         }          }
         if ($can_assign->{'int'}) {          if ($can_assign->{'int'}) {
            $auth_update .= "        vf.intarg.value='';\n";              $argreset .= "      vf.intarg.value='';\n";
               $numbuttons ++;
         }          }
         if ($can_assign->{'loc'}) {          if ($can_assign->{'loc'}) {
            $auth_update .= "       vf.locarg.value='';\n";              $argreset .= "      vf.locarg.value='';\n";
               $numbuttons ++;
           }
           if (!$can_assign->{'int'}) {
               my $warning = &mt('You may not specify an initial password, as this is only available when new users use LON-CAPA internal authentication.\n').
                             &mt('Your current role does not have rights to create users with that authentication type.');
               $auth_update = <<"END";
      // Currently the initial password field is only supported for internal auth
      // (see bug 6368).
      if (tf==1 && nw!=0) {
          eval('vf.f'+tf+'.selectedIndex=0;')
          alert('$warning');
      }
   END
           } elsif ($numbuttons > 1) {
               $auth_update = <<"END";
      // initial password specified, pick internal authentication
      if (tf==1 && nw!=0) {
         changed_radio('int',document.studentform);
         set_auth_radio_buttons('int',document.studentform);
   $argreset
      }
   
   END
         }          }
         $auth_update .= "  
     }\n";  
     }      }
   
     return(<<ENDPICK);      return(<<ENDPICK);
 function verify(vf,sec_caller) {  function verify(vf,sec_caller) {
     var founduname=0;      var founduname=0;
Line 777  function verify(vf,sec_caller) { Line 809  function verify(vf,sec_caller) {
     var foundname=0;      var foundname=0;
     var foundid=0;      var foundid=0;
     var foundsec=0;      var foundsec=0;
       var foundemail=0;
     var foundrole=0;      var foundrole=0;
     var founddomain=0;      var founddomain=0;
     var foundinststatus=0;      var foundinststatus=0;
Line 784  function verify(vf,sec_caller) { Line 817  function verify(vf,sec_caller) {
     for (i=0;i<=vf.nfields.value;i++) {      for (i=0;i<=vf.nfields.value;i++) {
         tw=eval('vf.f'+i+'.selectedIndex');          tw=eval('vf.f'+i+'.selectedIndex');
         if (i==0 && tw!=0) { founduname=1; }          if (i==0 && tw!=0) { founduname=1; }
         if (((i>=1) && (i<=5)) && tw!=0 ) { foundname=1; }          if (i==1 && tw!=0) { foundpwd=1; }
         if (i==6 && tw!=0) { foundid=1; }          if (((i>=2) && (i<=6)) && tw!=0 ) { foundname=1; }
         if (i==7 && tw!=0) { foundsec=1; }          if (i==7 && tw!=0) { foundid=1; }
         if (i==8 && tw!=0) { foundpwd=1; }          if (i==8 && tw!=0) { foundsec=1; }
         if (i==9 && tw!=0) { foundrole=1; }          if (i==9 && tw!=0) { foundemail=1; }
         if (i==10 && tw!=0) { founddomain=1; }          if (i==10 && tw!=0) { foundrole=1; }
         if (i==13 && tw!=0) { foundinstatus=1; }          if (i==11 && tw!=0) { founddomain=1; }
           if (i==12 && tw!=0) { foundinstatus=1; }
     }      }
     verify_message(vf,founduname,foundpwd,foundname,foundid,foundsec,foundrole,founddomain,foundinststatus);      verify_message(vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail,foundrole,founddomain,foundinststatus);
 }  }
   
 function flip(vf,tf) {  function flip(vf,tf) {
    var nw=eval('vf.f'+tf+'.selectedIndex');     var nw=eval('vf.f'+tf+'.selectedIndex');
    var i;     var i;
    // picked the all one name field, reset the other name ones to blank     // picked the all one name field, reset the other name ones to blank
    if (tf==1 && nw!=0) {     if (tf==2 && nw!=0) {
       for (i=2;i<=5;i++) {        for (i=3;i<=6;i++) {
          eval('vf.f'+i+'.selectedIndex=0;')           eval('vf.f'+i+'.selectedIndex=0;')
       }        }
    }     }
    //picked one of the piecewise name fields, reset the all in     //picked one of the piecewise name fields, reset the all in
    //one field to blank     //one field to blank
    if ((tf>=2) && (tf<=5) && (nw!=0)) {     if ((tf>=3) && (tf<=6) && (nw!=0)) {
       eval('vf.f1.selectedIndex=0;')        eval('vf.f2.selectedIndex=0;')
    }     }
    $auth_update     $auth_update
 }  }
   
 function clearpwd(vf) {  function clearpwd(vf) {
     var i;      var i;
     if (eval('vf.f8.selectedIndex')!=0) {      if (eval('vf.f1.selectedIndex')!=0) {
         eval('vf.f8.selectedIndex=0;')          eval('vf.f1.selectedIndex=0;')
     }      }
 }  }
 ENDPICK  ENDPICK
Line 880  sub print_upload_manager_footer { Line 914  sub print_upload_manager_footer {
     }      }
     $Str .= &set_login($defdom,$krbform,$intform,$locform);      $Str .= &set_login($defdom,$krbform,$intform,$locform);
     if ($env{'form.context'} eq 'requestcrs') {      if ($env{'form.context'} eq 'requestcrs') {
         $Str .= '<input type="hidden" name="defaultdomain" value="gcitest" />';          $Str .= '<input type="hidden" name="defaultdomain" value="'.$defdom.'" />';
     }      }
     my ($home_server_pick,$numlib) =      my ($home_server_pick,$numlib) =
         &Apache::loncommon::home_server_form_item($defdom,'lcserver',          &Apache::loncommon::home_server_form_item($defdom,'lcserver',
Line 1189  sub setup_date_selectors { Line 1223  sub setup_date_selectors {
   
   
 sub get_dates_from_form {  sub get_dates_from_form {
     my ($startname,$endname) = @_;      my ($startname,$endname,$timezone) = @_;
     if ($startname eq '') {      if ($startname eq '') {
         $startname = 'startdate';          $startname = 'startdate';
     }      }
     if ($endname eq '') {      if ($endname eq '') {
         $endname = 'enddate';          $endname = 'enddate';
     }      }
     my $startdate = &Apache::lonhtmlcommon::get_date_from_form($startname);      my $startdate = &Apache::lonhtmlcommon::get_date_from_form($startname,$timezone);
     my $enddate   = &Apache::lonhtmlcommon::get_date_from_form($endname);      my $enddate   = &Apache::lonhtmlcommon::get_date_from_form($endname,$timezone);
     if ($env{'form.no_end_date'}) {      if ($env{'form.no_end_date'}) {
         $enddate = 0;          $enddate = 0;
     }      }
Line 2676  END Line 2710  END
                                    );                                     );
             my $navmap = Apache::lonnavmaps::navmap->new();              my $navmap = Apache::lonnavmaps::navmap->new();
             if (defined($navmap)) {              if (defined($navmap)) {
                 my @allres=$navmap->retrieveResources('/uploaded/'.$cdom.'/'.$cnum.'/default_1261144274.sequence',sub { $_[0]->is_problem() },0);                  my $sequence = &Apache::loncommon::get_citest_map($cdom);
                   my @allres=$navmap->retrieveResources('/uploaded/'.$cdom.'/'.$cnum.'/'.$sequence,sub { $_[0]->is_problem() },0);
                 foreach my $resource (@allres) {                  foreach my $resource (@allres) {
                     my @parts = $resource->parts();                      my @parts = $resource->parts();
                     my $count = scalar(@parts);                      my $count = scalar(@parts);
Line 4161  sub upfile_drop_add { Line 4196  sub upfile_drop_add {
             my @secs;              my @secs;
             my %entries=&Apache::loncommon::record_sep($line);              my %entries=&Apache::loncommon::record_sep($line);
             # Determine user name              # Determine user name
               $entries{$fields{'username'}} =~ s/^\s+|\s+$//g;
             unless (($entries{$fields{'username'}} eq '') ||              unless (($entries{$fields{'username'}} eq '') ||
                     (!defined($entries{$fields{'username'}}))) {                      (!defined($entries{$fields{'username'}}))) {
                 my ($fname, $mname, $lname,$gen) = ('','','','');                  my ($fname, $mname, $lname,$gen) = ('','','','');
Line 4181  sub upfile_drop_add { Line 4217  sub upfile_drop_add {
                         $gen=$entries{$fields{'gen'}};                          $gen=$entries{$fields{'gen'}};
                     }                      }
                 }                  }
   
                 if ($entries{$fields{'username'}}                  if ($entries{$fields{'username'}}
                     ne &LONCAPA::clean_username($entries{$fields{'username'}})) {                      ne &LONCAPA::clean_username($entries{$fields{'username'}})) {
                       my $nowhitespace;
                       if ($entries{$fields{'username'}} =~ /\s/) {
                           $nowhitespace = ' - '.&mt('usernames may not contain spaces.');
                       }
                     $r->print('<br />'.                      $r->print('<br />'.
       &mt('[_1]: Unacceptable username for user [_2] [_3] [_4] [_5]',        &mt('[_1]: Unacceptable username for user [_2] [_3] [_4] [_5]',
           '<b>'.$entries{$fields{'username'}}.'</b>',$fname,$mname,$lname,$gen));            '<b>'.$entries{$fields{'username'}}.'</b>',$fname,$mname,$lname,$gen).
                                 $nowhitespace);
                     next;                      next;
                 } else {                  } else {
                       $entries{$fields{'domain'}} =~ s/^\s+|\s+$//g;
                     if ($entries{$fields{'domain'}}                       if ($entries{$fields{'domain'}} 
                         ne &LONCAPA::clean_domain($entries{$fields{'domain'}})) {                          ne &LONCAPA::clean_domain($entries{$fields{'domain'}})) {
                         $r->print('<br />'. '<b>'.$entries{$fields{'domain'}}.                          $r->print('<br />'. '<b>'.$entries{$fields{'domain'}}.
Line 4246  sub upfile_drop_add { Line 4289  sub upfile_drop_add {
                     # determine email address                      # determine email address
                     my $email='';                      my $email='';
                     if (defined($fields{'email'})) {                      if (defined($fields{'email'})) {
                           $entries{$fields{'email'}} =~ s/^\s+|\s+$//g;
                         if (defined($entries{$fields{'email'}})) {                          if (defined($entries{$fields{'email'}})) {
                             $email=$entries{$fields{'email'}};                              $email=$entries{$fields{'email'}};
                             unless ($email=~/^[^\@]+\@[^\@]+$/) { $email=''; }                              unless ($email=~/^[^\@]+\@[^\@]+$/) { $email=''; }
Line 4292  sub upfile_drop_add { Line 4336  sub upfile_drop_add {
                         $role = $defaultrole;                          $role = $defaultrole;
                     }                      }
                     # Clean up whitespace                      # Clean up whitespace
                     foreach (\$id,\$fname,\$mname,\$lname,\$gen) {                      foreach (\$id,\$fname,\$mname,\$lname,\$gen,\$inststatus) {
                         $$_ =~ s/(\s+$|^\s+)//g;                          $$_ =~ s/(\s+$|^\s+)//g;
                     }                      }
                     # check against rules                      # check against rules
Line 4310  sub upfile_drop_add { Line 4354  sub upfile_drop_add {
                         }                          }
                         $checkid = 1;                          $checkid = 1;
                         $newuser = 1;                          $newuser = 1;
                         my $user = $username.':'.$domain;  
                         if ($username =~/^[^\@]+\@[^\@]+$/) {                          if ($username =~/^[^\@]+\@[^\@]+$/) {
                             if ($email eq '') {                              if ($email eq '') {
                                 $email = $username;                                  $email = $username;
Line 4334  sub upfile_drop_add { Line 4377  sub upfile_drop_add {
                             }                              }
                         }                          }
                     }                      }
                       my $user = $username.':'.$userdomain;
                     if ($newuser) {                      if ($newuser) {
                         my $checkhash;                          my $checkhash;
                         my $checks = { 'username' => 1 };                          my $checks = { 'username' => 1 };
Line 4358  sub upfile_drop_add { Line 4402  sub upfile_drop_add {
                             }                              }
                         }                          }
                         if (!$cancreate{$usertype}) {                          if (!$cancreate{$usertype}) {
                             $r->print('<br />'.                              my $showtype = $longtypes{$usertype};
                                       &mt("[_1]: The user does not exist, and you are not permitted to create users of type: $longtypes{$usertype}.",'<b>'.$username.'</b>'));                              if ($usertype eq 'unofficial') {
                                   $r->print('<br />'.
                                             &mt("[_1]: The user does not exist, and the new user's username must be an e-mail address.",'<b>'.$username.'</b>'));
                               } else {
                                   $r->print('<br />'.
                                             &mt("[_1]: The user does not exist, and you are not permitted to create users of type: [_2].",'<b>'.$username.'</b>',$showtype));
                               }
                             next;                              next;
                         }                          }
                     } else {                      } else {

Removed from v.1.109.2.7  
changed lines
  Added in v.1.109.2.12


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