Diff for /loncom/interface/loncreateuser.pm between versions 1.406.2.2 and 1.413

version 1.406.2.2, 2016/08/12 18:33:17 version 1.413, 2016/09/27 21:47:48
Line 251  sub build_tools_display { Line 251  sub build_tools_display {
                    'unofficial' => 'Can request creation of unofficial courses',                     'unofficial' => 'Can request creation of unofficial courses',
                    'community'  => 'Can request creation of communities',                     'community'  => 'Can request creation of communities',
                    'textbook'   => 'Can request creation of textbook courses',                     'textbook'   => 'Can request creation of textbook courses',
                      'placement'  => 'Can request creation of placement tests',
                    'requestauthor'  => 'Can request author space',                     'requestauthor'  => 'Can request author space',
     );      );
     if ($context eq 'requestcourses') {      if ($context eq 'requestcourses') {
         %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname,          %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname,
                       'requestcourses.official','requestcourses.unofficial',                        'requestcourses.official','requestcourses.unofficial',
                       'requestcourses.community','requestcourses.textbook');                        'requestcourses.community','requestcourses.textbook',
         @usertools = ('official','unofficial','community','textbook');                        'requestcourses.placement');
           @usertools = ('official','unofficial','community','textbook','placement');
         @options =('norequest','approval','autolimit','validate');          @options =('norequest','approval','autolimit','validate');
         %validations = &Apache::lonnet::auto_courserequest_checks($ccdomain);          %validations = &Apache::lonnet::auto_courserequest_checks($ccdomain);
         %reqtitles = &courserequest_titles();          %reqtitles = &courserequest_titles();
Line 447  sub coursereq_externaluser { Line 449  sub coursereq_externaluser {
                    'unofficial' => 'Can request creation of unofficial courses',                     'unofficial' => 'Can request creation of unofficial courses',
                    'community'  => 'Can request creation of communities',                     'community'  => 'Can request creation of communities',
                    'textbook'   => 'Can request creation of textbook courses',                     'textbook'   => 'Can request creation of textbook courses',
                      'placement'  => 'Can request creation of placement tests',
     );      );
   
     %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname,      %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname,
                       'reqcrsotherdom.official','reqcrsotherdom.unofficial',                        'reqcrsotherdom.official','reqcrsotherdom.unofficial',
                       'reqcrsotherdom.community','reqcrsotherdom.textbook');                        'reqcrsotherdom.community','reqcrsotherdom.textbook',
     @usertools = ('official','unofficial','community','textbook');                        'reqcrsotherdom.placement');
       @usertools = ('official','unofficial','community','textbook','placement');
     @options = ('approval','validate','autolimit');      @options = ('approval','validate','autolimit');
     %validations = &Apache::lonnet::auto_courserequest_checks($cdom);      %validations = &Apache::lonnet::auto_courserequest_checks($cdom);
     my $optregex = join('|',@options);      my $optregex = join('|',@options);
Line 533  sub courserequest_titles { Line 537  sub courserequest_titles {
                                    unofficial => 'Unofficial',                                     unofficial => 'Unofficial',
                                    community  => 'Communities',                                     community  => 'Communities',
                                    textbook   => 'Textbook',                                     textbook   => 'Textbook',
                                      placement  => 'Placement Tests',
                                    norequest  => 'Not allowed',                                     norequest  => 'Not allowed',
                                    approval   => 'Approval by Dom. Coord.',                                     approval   => 'Approval by Dom. Coord.',
                                    validate   => 'With validation',                                     validate   => 'With validation',
Line 813  sub entry_form { Line 818  sub entry_form {
     }      }
     my $cancreate =      my $cancreate =
         &Apache::lonuserutils::can_create_user($dom,$context,$usertype);          &Apache::lonuserutils::can_create_user($dom,$context,$usertype);
     my $userpicker =       my ($userpicker,$cansearch) = 
        &Apache::loncommon::user_picker($dom,$srch,$forcenewuser,         &Apache::loncommon::user_picker($dom,$srch,$forcenewuser,
                                        'document.crtuser',$cancreate,$usertype);                                         'document.crtuser',$cancreate,$usertype);
     my $srchbutton = &mt('Search');      my $srchbutton = &mt('Search');
Line 822  sub entry_form { Line 827  sub entry_form {
     } elsif ($cancreate && $responsemsg ne '' && $inexact) {      } elsif ($cancreate && $responsemsg ne '' && $inexact) {
         $srchbutton = &mt('Search or Add New User');          $srchbutton = &mt('Search or Add New User');
     }      }
     my $output = <<"ENDBLOCK";      my $output;
       if ($cansearch) {
           $output = <<"ENDBLOCK";
 <form action="/adm/createuser" method="post" name="crtuser">  <form action="/adm/createuser" method="post" name="crtuser">
 <input type="hidden" name="action" value="$env{'form.action'}" />  <input type="hidden" name="action" value="$env{'form.action'}" />
 <input type="hidden" name="phase" value="get_user_info" />  <input type="hidden" name="phase" value="get_user_info" />
Line 830  $userpicker Line 837  $userpicker
 <input name="userrole" type="button" value="$srchbutton" onclick="javascript:validateEntry(document.crtuser)" />  <input name="userrole" type="button" value="$srchbutton" onclick="javascript:validateEntry(document.crtuser)" />
 </form>  </form>
 ENDBLOCK  ENDBLOCK
       } else {
           $output = '<p>'.$userpicker.'</p>';
       }
     if ($env{'form.phase'} eq '') {      if ($env{'form.phase'} eq '') {
         my $defdom=$env{'request.role.domain'};          my $defdom=$env{'request.role.domain'};
         my $domform = &Apache::loncommon::select_dom_form($defdom,'srchdomain');          my $domform = &Apache::loncommon::select_dom_form($defdom,'srchdomain');
Line 2579  sub update_user_data { Line 2589  sub update_user_data {
     my (%alerts,%rulematch,%inst_results,%curr_rules);      my (%alerts,%rulematch,%inst_results,%curr_rules);
     my @userinfo = ('firstname','middlename','lastname','generation','permanentemail','id');      my @userinfo = ('firstname','middlename','lastname','generation','permanentemail','id');
     my @usertools = ('aboutme','blog','webdav','portfolio');      my @usertools = ('aboutme','blog','webdav','portfolio');
     my @requestcourses = ('official','unofficial','community','textbook');      my @requestcourses = ('official','unofficial','community','textbook','placement');
     my @requestauthor = ('requestauthor');      my @requestauthor = ('requestauthor');
     my ($othertitle,$usertypes,$types) =       my ($othertitle,$usertypes,$types) = 
         &Apache::loncommon::sorted_inst_types($env{'form.ccdomain'});          &Apache::loncommon::sorted_inst_types($env{'form.ccdomain'});
Line 2752  sub update_user_data { Line 2762  sub update_user_data {
              'requestcourses.community','requestcourses.textbook',               'requestcourses.community','requestcourses.textbook',
              'reqcrsotherdom.official','reqcrsotherdom.unofficial',               'reqcrsotherdom.official','reqcrsotherdom.unofficial',
              'reqcrsotherdom.community','reqcrsotherdom.textbook',               'reqcrsotherdom.community','reqcrsotherdom.textbook',
              'requestauthor'],               'reqcrsotherdom.placement','requestauthor'],
               $env{'form.ccdomain'},$env{'form.ccuname'});                $env{'form.ccdomain'},$env{'form.ccuname'});
         my ($tmp) = keys(%userenv);          my ($tmp) = keys(%userenv);
         if ($tmp =~ /^(con_lost|error)/i) {           if ($tmp =~ /^(con_lost|error)/i) { 
Line 3043  sub update_user_data { Line 3053  sub update_user_data {
                         ($env{'user.domain'} eq $env{'form.ccdomain'})) {                          ($env{'user.domain'} eq $env{'form.ccdomain'})) {
                         my %newenvhash;                          my %newenvhash;
                         foreach my $key (keys(%changed)) {                          foreach my $key (keys(%changed)) {
                             if (($key eq 'official') || ($key eq 'unofficial')                              if (($key eq 'official') || ($key eq 'unofficial') ||
                                 || ($key eq 'community') || ($key eq 'textbook')) {                                  ($key eq 'community') || ($key eq 'textbook') ||
                                   ($key eq 'placement')) {
                                 $newenvhash{'environment.requestcourses.'.$key} =                                  $newenvhash{'environment.requestcourses.'.$key} =
                                     $changeHash{'requestcourses.'.$key};                                      $changeHash{'requestcourses.'.$key};
                                 if ($changeHash{'requestcourses.'.$key}) {                                  if ($changeHash{'requestcourses.'.$key}) {
Line 3110  sub update_user_data { Line 3121  sub update_user_data {
                                   \%newsettingstext);                                    \%newsettingstext);
                 if ($env{'form.cid'} ne $userenv{'id'}) {                  if ($env{'form.cid'} ne $userenv{'id'}) {
                     &Apache::lonnet::idput($env{'form.ccdomain'},                      &Apache::lonnet::idput($env{'form.ccdomain'},
                          ($env{'form.ccuname'} => $env{'form.cid'}));                           {$env{'form.ccuname'} => $env{'form.cid'}},$uhome,'ids');
                     if (($recurseid) &&                      if (($recurseid) &&
                         (&Apache::lonnet::allowed('mau',$env{'form.ccdomain'}))) {                          (&Apache::lonnet::allowed('mau',$env{'form.ccdomain'}))) {
                         my $idresult =                           my $idresult = 
Line 3253  sub display_userinfo { Line 3264  sub display_userinfo {
          'unofficial'     => 'Can Request Unofficial Courses',           'unofficial'     => 'Can Request Unofficial Courses',
          'community'      => 'Can Request Communities',           'community'      => 'Can Request Communities',
          'textbook'       => 'Can Request Textbook Courses',           'textbook'       => 'Can Request Textbook Courses',
            'placement'      => 'Can Request Placement Tests',
          'requestauthor'  => 'Can Request Author Role',           'requestauthor'  => 'Can Request Author Role',
          'inststatus'     => "Affiliation",           'inststatus'     => "Affiliation",
          'prvs'           => 'Previous Value:',           'prvs'           => 'Previous Value:',
Line 5400  sub print_main_menu { Line 5412  sub print_main_menu {
                                           groups => 'Community Groups',                                            groups => 'Community Groups',
                                         },                                          },
                        );                         );
           $linktext{'Placement'} = $linktext{'Course'};
   
         my %linktitle = (          my %linktitle = (
             'Course' => {              'Course' => {
Line 5414  sub print_main_menu { Line 5427  sub print_main_menu {
                            },                             },
         );          );
   
           $linktitle{'Placement'} = $linktitle{'Course'};
   
         push(@{ $menu[0]->{items} }, #Category: Single Users          push(@{ $menu[0]->{items} }, #Category: Single Users
             {                 {   
              linktext => $linktext{$crstype}{'single'},               linktext => $linktext{$crstype}{'single'},
Line 6823  sub user_search_result { Line 6838  sub user_search_result {
         }          }
     }      }
     if ($response ne '') {      if ($response ne '') {
         $response = '<span class="LC_warning">'.$response.'</span>';          $response = '<span class="LC_warning">'.$response.'</span><br />';
     }      }
     if ($srch->{'srchin'} eq 'instd') {      if ($srch->{'srchin'} eq 'instd') {
         my $instd_chk = &directorysrch_check($srch);          my $instd_chk = &instdirectorysrch_check($srch);
         if ($instd_chk ne 'ok') {          if ($instd_chk ne 'ok') {
             $response = '<span class="LC_warning">'.$instd_chk.'</span>'.              my $domd_chk = &domdirectorysrch_check($srch);
                         '<br />'.&mt('You may want to search in the LON-CAPA domain instead of the institutional directory.').'<br /><br />';              $response .= '<span class="LC_warning">'.$instd_chk.'</span><br />';
               if ($domd_chk eq 'ok') {
                   $response .= &mt('You may want to search in the LON-CAPA domain instead of the institutional directory.');
               }
               $response .= '<br /><br />';
           }
       } else {
           unless (($context eq 'requestcrs') && ($srch->{'srchtype'} eq 'exact')) { 
               my $domd_chk = &domdirectorysrch_check($srch);
               if ($domd_chk ne 'ok') {
                   my $instd_chk = &instdirectorysrch_check($srch);
                   $response .= '<span class="LC_warning">'.$domd_chk.'</span><br />';
                   if ($instd_chk eq 'ok') {
                       $response .= &mt('You may want to search in the institutional directory instead of the LON-CAPA domain.');
                   }
                   $response .= '<br /><br />';
               }
         }          }
     }      }
     if ($response ne '') {      if ($response ne '') {
Line 6993  sub user_search_result { Line 7024  sub user_search_result {
                 ($currstate,$response,$forcenewuser) =                   ($currstate,$response,$forcenewuser) = 
                     &build_search_response($context,$srch,%srch_results);                      &build_search_response($context,$srch,%srch_results);
             } else {              } else {
                 my $showdom = &display_domain_info($srch->{'srchdomain'});                $response = '<span class="LC_warning">'.                  my $showdom = &display_domain_info($srch->{'srchdomain'});
                   $response = '<span class="LC_warning">'.
                     &mt('Institutional directory search is not available in domain: [_1]',$showdom).                      &mt('Institutional directory search is not available in domain: [_1]',$showdom).
                     '</span><br />'.                      '</span><br />'.
                     &mt('You may want to search in the LON-CAPA domain instead of the institutional directory.').                      &mt('You may want to search in the LON-CAPA domain instead of the institutional directory.').
Line 7004  sub user_search_result { Line 7036  sub user_search_result {
     return ($currstate,$response,$forcenewuser,\%srch_results);      return ($currstate,$response,$forcenewuser,\%srch_results);
 }  }
   
 sub directorysrch_check {  sub domdirectorysrch_check {
       my ($srch) = @_;
       my $response;
       my %dom_inst_srch = &Apache::lonnet::get_dom('configuration',
                                                ['directorysrch'],$srch->{'srchdomain'});
       my $showdom = &display_domain_info($srch->{'srchdomain'});
       if (ref($dom_inst_srch{'directorysrch'}) eq 'HASH') {
           if ($dom_inst_srch{'directorysrch'}{'lcavailable'} eq '0') {
               return &mt('LON-CAPA directory search is not available in domain: [_1]',$showdom);
           }
           if ($dom_inst_srch{'directorysrch'}{'lclocalonly'}) {
               if ($env{'request.role.domain'} ne $srch->{'srchdomain'}) {
                   return &mt('LON-CAPA directory search in domain: [_1] is only allowed for users with a current role in the domain.',$showdom);
               }
           }
       }
       return 'ok';
   }
   
   sub instdirectorysrch_check {
     my ($srch) = @_;      my ($srch) = @_;
     my $can_search = 0;      my $can_search = 0;
     my $response;      my $response;

Removed from v.1.406.2.2  
changed lines
  Added in v.1.413


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