Diff for /loncom/interface/loncreateuser.pm between versions 1.215 and 1.216

version 1.215, 2007/12/21 14:35:42 version 1.216, 2007/12/21 15:22:01
Line 597  sub print_user_modification_page { Line 597  sub print_user_modification_page {
     my $nondc_setsection_code = '';                                              my $nondc_setsection_code = '';                                        
     my %loaditem;      my %loaditem;
   
     my $groupslist;      my $groupslist = &Apache::lonuserutils::get_groupslist();
     my %curr_groups = &Apache::longroup::coursegroups();  
     if (%curr_groups) {  
         $groupslist = join('","',sort(keys(%curr_groups)));  
         $groupslist = '"'.$groupslist.'"';     
     }  
   
     if ($env{'request.role'} =~ m-^dc\./($match_domain)/$-) {  
         my $dcdom = $1;  
         $loaditem{'onload'} = "document.cu.coursedesc.value='';";  
         my @rolevals = ('st','ta','ep','in','cc');  
         my (@crsroles,@grproles);  
         for (my $i=0; $i<@rolevals; $i++) {  
             $crsroles[$i]=&Apache::lonnet::plaintext($rolevals[$i],'Course');  
             $grproles[$i]=&Apache::lonnet::plaintext($rolevals[$i],'Group');  
         }  
         my $rolevalslist = join('","',@rolevals);  
         my $crsrolenameslist = join('","',@crsroles);  
         my $grprolenameslist = join('","',@grproles);  
         my $pickcrsfirst = '<--'.&mt('Pick course first');  
         my $pickgrpfirst = '<--'.&mt('Pick group first');   
         $dc_setcourse_code = <<"ENDSCRIPT";  
     function setCourse() {  
         var course = document.cu.dccourse.value;  
         if (course != "") {  
             if (document.cu.dcdomain.value != document.cu.origdom.value) {  
                 alert("You must select a course in the current domain");  
                 return;  
             }   
             var userrole = document.cu.role.options[document.cu.role.selectedIndex].value  
             var section="";  
             var numsections = 0;  
             var newsecs = new Array();  
             for (var i=0; i<document.cu.currsec.length; i++) {  
                 if (document.cu.currsec.options[i].selected == true ) {  
                     if (document.cu.currsec.options[i].value != "" && document.cu.currsec.options[i].value != null) {   
                         if (numsections == 0) {  
                             section = document.cu.currsec.options[i].value  
                             numsections = 1;  
                         }  
                         else {  
                             section = section + "," +  document.cu.currsec.options[i].value  
                             numsections ++;  
                         }  
                     }  
                 }  
             }  
             if (document.cu.newsec.value != "" && document.cu.newsec.value != null) {  
                 if (numsections == 0) {  
                     section = document.cu.newsec.value  
                 }  
                 else {  
                     section = section + "," +  document.cu.newsec.value  
                 }  
                 newsecs = document.cu.newsec.value.split(/,/g);  
                 numsections = numsections + newsecs.length;  
             }  
             if ((userrole == 'st') && (numsections > 1)) {  
                 alert("In each course, each user may only have one student role at a time. You had selected "+numsections+" sections.\\nPlease modify your selections so they include no more than one section.")  
                 return;  
             }  
             for (var j=0; j<newsecs.length; j++) {  
                 if ((newsecs[j] == 'all') || (newsecs[j] == 'none')) {  
                     alert("'"+newsecs[j]+"' may not be used as the name for a section, as it is a reserved word.\\nPlease choose a different section name.");  
                     return;  
                 }  
                 if (document.cu.groups.value != '') {  
                     var groups = document.cu.groups.value.split(/,/g);  
                     for (var k=0; k<groups.length; k++) {  
                         if (newsecs[j] == groups[k]) {  
                             alert("'"+newsecs[j]+"' may not be used as the name for a section, as it is the name of a course group.\\nSection names and group names must be distinct. Please choose a different section name.");  
                             return;   
                         }  
                     }  
                 }  
             }  
             if ((userrole == 'cc') && (numsections > 0)) {  
                 alert("Section designations do not apply to Course Coordinator roles.\\nA course coordinator role will be added with access to all sections.");  
                 section = "";  
             }  
             var coursename = "_$dcdom"+"_"+course+"_"+userrole  
             var numcourse = getIndex(document.cu.dccourse);  
             if (numcourse == "-1") {  
                 alert("There was a problem with your course selection");  
                 return  
             }  
             else {  
                 document.cu.elements[numcourse].name = "act"+coursename;  
                 var numnewsec = getIndex(document.cu.newsec);  
                 if (numnewsec != "-1") {  
                     document.cu.elements[numnewsec].name = "sec"+coursename;  
                     document.cu.elements[numnewsec].value = section;  
                 }  
                 var numstart = getIndex(document.cu.start);  
                 if (numstart != "-1") {  
                     document.cu.elements[numstart].name = "start"+coursename;  
                 }  
                 var numend = getIndex(document.cu.end);  
                 if (numend != "-1") {  
                     document.cu.elements[numend].name = "end"+coursename  
                 }  
             }  
         }  
         document.cu.submit();  
     }  
   
     function getIndex(caller) {      my $js = &validation_javascript($context,$ccdomain,$pjump_def,
         for (var i=0;i<document.cu.elements.length;i++) {                                 $groupslist,$newuser,$formname,\%loaditem);
             if (document.cu.elements[i] == caller) {  
                 return i;  
             }  
         }  
         return -1;  
     }  
 ENDSCRIPT  
     } else {  
         $nondc_setsection_code =   
             &Apache::lonuserutils::setsections_javascript('cu',$groupslist);  
     }  
     my $js = &user_modification_js($pjump_def,$dc_setcourse_code,  
                                    $nondc_setsection_code,$groupslist);  
   
     my ($jsback,$elements) = &crumb_utilities();  
     my $javascript_validations;  
     if ((&Apache::lonnet::allowed('mau',$ccdomain)) || ($uhome eq 'no_host')) {  
         my ($krbdef,$krbdefdom) =  
             &Apache::loncommon::get_kerberos_defaults($ccdomain);  
         $javascript_validations =   
             &Apache::lonuserutils::javascript_validations('auth',$krbdefdom,undef,  
                                                         undef,$ccdomain);  
     }  
     $js .= "\n".  
        '<script type="text/javascript">'."\n".$jsback."\n".  
        $javascript_validations.'</script>';  
     my $start_page =       my $start_page = 
  &Apache::loncommon::start_page('User Management',   &Apache::loncommon::start_page('User Management',
        $js,{'add_entries' => \%loaditem,});         $js,{'add_entries' => \%loaditem,});
       my %breadcrumb_text = &singleuser_breadcrumb();
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
      ({href=>"javascript:backPage(document.cu)",       ({href=>"javascript:backPage($form)",
        text=>"Create/modify user",         text=>$breadcrumb_text{'search'},
        faq=>282,bug=>'Instructor Interface',});         faq=>282,bug=>'Instructor Interface',});
   
     if ($env{'form.phase'} eq 'userpicked') {      if ($env{'form.phase'} eq 'userpicked') {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
      ({href=>"javascript:backPage(document.cu,'get_user_info','select')",       ({href=>"javascript:backPage($form,'get_user_info','select')",
        text=>"Select a user",         text=>$breadcrumb_text{'userpicked'},
        faq=>282,bug=>'Instructor Interface',});         faq=>282,bug=>'Instructor Interface',});
     }      }
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
       ({href=>"javascript:backPage(document.cu,'$env{'form.phase'}','modify')",        ({href=>"javascript:backPage($form,'$env{'form.phase'}','modify')",
         text=>"Set user role",          text=>$breadcrumb_text{'modify'},
         faq=>282,bug=>'Instructor Interface',});          faq=>282,bug=>'Instructor Interface',});
     my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('User Management');      my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('User Management');
   
     my $forminfo =<<"ENDFORMINFO";      my $forminfo =<<"ENDFORMINFO";
 <form action="/adm/createuser" method="post" name="cu">  <form action="/adm/createuser" method="post" name="$formname">
 <input type="hidden" name="phase" value="update_user_data" />  <input type="hidden" name="phase" value="update_user_data" />
 <input type="hidden" name="ccuname" value="$ccuname" />  <input type="hidden" name="ccuname" value="$ccuname" />
 <input type="hidden" name="ccdomain" value="$ccdomain" />  <input type="hidden" name="ccdomain" value="$ccdomain" />
Line 766  ENDFORMINFO Line 637  ENDFORMINFO
     $inccourses{$1.'_'.$2}=1;      $inccourses{$1.'_'.$2}=1;
         }          }
     }      }
     if ($uhome eq 'no_host') {      if ($newuser) {
         my $portfolioform;          my $portfolioform;
         if (&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) {          if (&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) {
             # Current user has quota modification privileges              # Current user has quota modification privileges
Line 789  $forminfo Line 660  $forminfo
 $loginscript  $loginscript
 </script>  </script>
 <input type='hidden' name='makeuser' value='1' />  <input type='hidden' name='makeuser' value='1' />
 <h2>$lt{'cnu'} "$ccuname" $lt{'ind'} $ccdomain</h2>  <h2>$lt{'cnu'} "$ccuname" $lt{'ind'} $ccdomain
 ENDTITLE  ENDTITLE
         if ($env{'form.action'} eq 'singlestudent') {          if ($env{'form.action'} eq 'singlestudent') {
             $r->print(' ('.$lt{'ast'}.')');              $r->print(' ('.$lt{'ast'}.')');
Line 866  ENDAUTH Line 737  ENDAUTH
                                             $permission));                                              $permission));
         }          }
         $r->print('</div><div class="LC_clear_float_footer"></div>');          $r->print('</div><div class="LC_clear_float_footer"></div>');
     } else { # user already exist-      } else { # user already exists
  my %lt=&Apache::lonlocal::texthash(   my %lt=&Apache::lonlocal::texthash(
                     'cup'  => "Modify existing user: ",                      'cup'  => "Modify existing user: ",
                     'ens'  => "Enroll one student: ",                      'ens'  => "Enroll one student: ",
Line 1291  sub date_sections_select { Line 1162  sub date_sections_select {
     return $output;      return $output;
 }  }
   
   sub validation_javascript {
       my ($context,$ccdomain,$pjump_def,$groupslist,$newuser,$formname,
           $loaditem) = @_;
       my $dc_setcourse_code = '';
       my $nondc_setsection_code = '';
       if ($context eq 'domain') {
           my $dcdom = $env{'request.role.domain'};
           $loaditem->{'onload'} = "document.cu.coursedesc.value='';";
           $dc_setcourse_code = &Apache::lonuserutils::dc_setcourse_js('cu','singleuser');
       } else {
           $nondc_setsection_code =
               &Apache::lonuserutils::setsections_javascript($formname,$groupslist);
       }
       my $js = &user_modification_js($pjump_def,$dc_setcourse_code,
                                      $nondc_setsection_code,$groupslist);
   
       my ($jsback,$elements) = &crumb_utilities();
       my $javascript_validations;
       if ((&Apache::lonnet::allowed('mau',$ccdomain)) || ($newuser)) {
           my ($krbdef,$krbdefdom) =
               &Apache::loncommon::get_kerberos_defaults($ccdomain);
           $javascript_validations =
               &Apache::lonuserutils::javascript_validations('createuser',$krbdefdom,undef,
                                                             undef,$ccdomain);
       }
       $js .= "\n".
              '<script type="text/javascript">'."\n".$jsback."\n".
              $javascript_validations.'</script>';
       return $js;
   }
   
 sub user_authentication {  sub user_authentication {
     my ($ccuname,$ccdomain,$krbdefdom,$abv_auth) = @_;      my ($ccuname,$ccdomain,$krbdefdom,$abv_auth) = @_;
     my $currentauth=&Apache::lonnet::queryauthenticate($ccuname,$ccdomain);      my $currentauth=&Apache::lonnet::queryauthenticate($ccuname,$ccdomain);

Removed from v.1.215  
changed lines
  Added in v.1.216


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