Diff for /loncom/interface/lonuserutils.pm between versions 1.15 and 1.16

version 1.15, 2007/12/12 23:59:41 version 1.16, 2007/12/14 00:20:53
Line 1764  sub show_users_list { Line 1764  sub show_users_list {
         $cnum = $env{'course.'.$cid.'.num'};          $cnum = $env{'course.'.$cid.'.num'};
         ($classgroups) = &Apache::loncoursedata::get_group_memberships(          ($classgroups) = &Apache::loncoursedata::get_group_memberships(
                                      $userlist,$keylist,$cdom,$cnum);                                       $userlist,$keylist,$cdom,$cnum);
         if (! exists($env{'form.displayphotos'})) {          if ($mode eq 'autoenroll') {
             $env{'form.displayphotos'} = 'off';              $env{'form.showrole'} = 'st';
         }          } else {
         $displayphotos = $env{'form.displayphotos'};              if (! exists($env{'form.displayphotos'})) {
         if (! exists($env{'form.displayclickers'})) {                  $env{'form.displayphotos'} = 'off';
             $env{'form.displayclickers'} = 'off';              }
         }              $displayphotos = $env{'form.displayphotos'};
         $displayclickers = $env{'form.displayclickers'};              if (! exists($env{'form.displayclickers'})) {
         if ($env{'course.'.$cid.'.internal.showphoto'}) {                  $env{'form.displayclickers'} = 'off';
             $r->print('              }
               $displayclickers = $env{'form.displayclickers'};
               if ($env{'course.'.$cid.'.internal.showphoto'}) {
                   $r->print('
 <script type="text/javascript">  <script type="text/javascript">
 function photowindow(photolink) {  function photowindow(photolink) {
     var title = "Photo_Viewer";      var title = "Photo_Viewer";
Line 1783  function photowindow(photolink) { Line 1786  function photowindow(photolink) {
     stdeditbrowser.focus();      stdeditbrowser.focus();
 }  }
 </script>  </script>
            ');                 ');
         }              }
         $r->print(<<END);              $r->print(<<END);
 <input type="hidden" name="displayphotos" value="$displayphotos" />  <input type="hidden" name="displayphotos" value="$displayphotos" />
 <input type="hidden" name="displayclickers" value="$displayclickers" />  <input type="hidden" name="displayclickers" value="$displayclickers" />
 END  END
           }
     }      }
     unless ($mode eq 'autoenroll') {      if ($mode ne 'autoenroll') {
         my $check_uncheck_js = &Apache::loncommon::check_uncheck_jscript();          my $check_uncheck_js = &Apache::loncommon::check_uncheck_jscript();
         my $alert = &mt("You must select at least one user by checking a user's 'Select' checkbox");          my $alert = &mt("You must select at least one user by checking a user's 'Select' checkbox");
         my $singconfirm = &mt(' for a single user');          my $singconfirm = &mt(' for a single user');
Line 1919  END Line 1923  END
     } elsif ($env{'form.showrole'} ne 'Any') {      } elsif ($env{'form.showrole'} ne 'Any') {
         $rolefilter = &Apache::lonnet::plaintext($env{'form.showrole'});          $rolefilter = &Apache::lonnet::plaintext($env{'form.showrole'});
     }      }
     my $results_description = &results_header_row($rolefilter,$statusmode,      my $results_description;
                                                   $context,$permission);      if ($mode ne 'autoenroll') {
     $r->print('<b>'.$results_description.'</b><br />');          $results_description = &results_header_row($rolefilter,$statusmode,
                                                      $context,$permission);
           $r->print('<b>'.$results_description.'</b><br />');
       }
     my ($output,$actionselect);      my ($output,$actionselect);
     if ($mode eq 'html' || $mode eq 'view') {      if ($mode eq 'html' || $mode eq 'view' || $mode eq 'autoenroll') {
         if ($permission->{'cusr'}) {          if ($mode ne 'autoenroll') {
             $actionselect = &select_actions($context,$setting,$statusmode);              if ($permission->{'cusr'}) {
         }                  $actionselect = &select_actions($context,$setting,$statusmode);
         $r->print(<<END);              }
               $r->print(<<END);
 <input type="hidden" name="srchby"  value="uname" />  <input type="hidden" name="srchby"  value="uname" />
 <input type="hidden" name="srchin"   value="dom" />  <input type="hidden" name="srchin"   value="dom" />
 <input type="hidden" name="srchtype" value="exact" />  <input type="hidden" name="srchtype" value="exact" />
 <input type="hidden" name="srchterm" value="" />  <input type="hidden" name="srchterm" value="" />
 <input type="hidden" name="srchdomain" value="" />   <input type="hidden" name="srchdomain" value="" /> 
 END  END
          if ($mode ne 'autoenroll') {              $output = '<p>';
              $output = '<p>';              my @linkdests = ('aboutme');
              my @linkdests = ('aboutme');              if ($permission->{'cusr'}) {
              if ($permission->{'cusr'}) {                  push (@linkdests,'modify');
                  push (@linkdests,'modify');                  $output .= '<span class="LC_nobreak">'.$lt{'link'}.':&nbsp;';
                  $output .= '<span class="LC_nobreak">'.$lt{'link'}.':&nbsp;';                  my $usernamelink = $env{'form.usernamelink'};
                  my $usernamelink = $env{'form.usernamelink'};                  if ($usernamelink eq '') {
                  if ($usernamelink eq '') {                      $usernamelink = 'aboutme';
                      $usernamelink = 'aboutme';                  }
                  }                  foreach my $item (@linkdests) {
                  foreach my $item (@linkdests) {                      my $checkedstr = '';
                      my $checkedstr = '';                      if ($item eq $usernamelink) {
                      if ($item eq $usernamelink) {                          $checkedstr = ' checked="checked" ';
                          $checkedstr = ' checked="checked" ';                      }
                      }                      $output .= '<label><input type="radio" name="usernamelink" value="'.$item.'"'.$checkedstr.'>&nbsp;'.$lt{$item}.'</label>&nbsp;&nbsp;';
                      $output .= '<label><input type="radio" name="usernamelink" value="'.$item.'"'.$checkedstr.'>&nbsp;'.$lt{$item}.'</label>&nbsp;&nbsp;';                  }
                  }                  $output .= '</span><br />';
                  $output .= '</span><br />';              } else {
              } else {                  $output .= &mt("Click on a username to view the user's personal page.").'<br />';
                  $output .= &mt("Click on a username to view the user's personal page.").'<br />';              }
              }              if ($actionselect) {
              if ($actionselect) {                  $output .= <<"END"; 
                  $output .= <<"END";   
 $lt{'ac'}:&nbsp;$actionselect <input type="button" value="$lt{'pr'}" onclick="javascript:verify_action(document.studentform.actionlist)" /></p>  $lt{'ac'}:&nbsp;$actionselect <input type="button" value="$lt{'pr'}" onclick="javascript:verify_action(document.studentform.actionlist)" /></p>
 <p><input type="button" value="$lt{'ca'}" onclick="javascript:checkAll(document.studentform.actionlist)" /> &nbsp;  <p><input type="button" value="$lt{'ca'}" onclick="javascript:checkAll(document.studentform.actionlist)" /> &nbsp;
 <input type="button" value="$lt{'ua'}" onclick="javascript:uncheckAll(document.studentform.actionlist)" />  <input type="button" value="$lt{'ua'}" onclick="javascript:uncheckAll(document.studentform.actionlist)" />
 END  END
              }              }
         }          }
         $output .= "\n<p>\n".          $output .= "\n<p>\n".
                   &Apache::loncommon::start_data_table().                    &Apache::loncommon::start_data_table().
Line 1980  END Line 1987  END
             $output .= "<th><a href=\"javascript:document.studentform.sortby.value='$item';document.studentform.submit();\">$lt{$item}</a></th>\n";              $output .= "<th><a href=\"javascript:document.studentform.sortby.value='$item';document.studentform.submit();\">$lt{$item}</a></th>\n";
         }          }
         my %role_types = &role_type_names();          my %role_types = &role_type_names();
         if ($context eq 'course') {          if ($context eq 'course' && $mode ne 'autoenroll') {
             if ($env{'form.showrole'} eq 'st' || $env{'form.showrole'} eq 'Any') {              if ($env{'form.showrole'} eq 'st' || $env{'form.showrole'} eq 'Any') {
                 # Clicker display on or off?                  # Clicker display on or off?
                 my %clicker_options = &Apache::lonlocal::texthash(                  my %clicker_options = &Apache::lonlocal::texthash(
Line 2014  END Line 2021  END
                       '    </th>'."\n";                        '    </th>'."\n";
                 }                  }
             }              }
             $output .= &Apache::loncommon::end_data_table_header_row();  
         }          }
           $output .= &Apache::loncommon::end_data_table_header_row();
 # Done with the HTML header line  # Done with the HTML header line
     } elsif ($mode eq 'csv') {      } elsif ($mode eq 'csv') {
         #          #
Line 2151  END Line 2158  END
         }          }
         if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll') {          if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll') {
             $r->print(&Apache::loncommon::start_data_table_row());              $r->print(&Apache::loncommon::start_data_table_row());
             $r->print("<td>$rowcount</td>\n");  
             my $checkval;              my $checkval;
             if ($mode ne 'autoenroll' && $actionselect) {              if ($mode eq 'autoenroll') {
                 $checkval = $user;                   my $cellentry;
                 if ($context eq 'course') {                  if ($in{'type'} eq 'auto') {
                     if ($role eq 'st') {                      $cellentry = '<b>'.&mt('auto').'</b>&nbsp;<label><input type="checkbox" name="chgauto" value="'.$in{'username'}.':'.$in{'domain'}.'" />&nbsp;Change</label>';
                         $checkval .= ':st';                      $autocount ++;
                     }                  } else {
                     $checkval .= ':'.$in{'section'};                      $cellentry = '<table border="0" cellspacing="0"><tr><td rowspan="2"><b>'.&mt('manual').'</b></td><td><nobr><label><input type="checkbox" name="chgmanual" value="'.$in{'username'}.':'.$in{'domain'}.'" />&nbsp;Change</label></nobr></td></tr><tr><td><nobr>';
                     if ($role eq 'st') {                      $manualcount ++;
                         $checkval .= ':'.$in{'type'}.':'.$in{'lockedtype'};                      if ($in{'lockedtype'}) {
                           $cellentry .= '<label><input type="checkbox" name="unlockchg" value="'.$in{'username'}.':'.$in{'domain'}.'" />&nbsp;'.&mt('Unlock').'</label>';
                           $unlockcount ++;
                       } else {
                           $cellentry .= '<label><input type="checkbox" name="lockchg" value="'.$in{'username'}.':'.$in{'domain'}.'" />&nbsp;'.&mt('Lock').'</label>';
                           $lockcount ++;
                       }
                       $cellentry .= '</nobr></td></tr></table>';
                   }
                   $r->print("<td>$cellentry</td>\n");
               } else {
                   $r->print("<td>$rowcount</td>\n");
                   $checkval;
                   if ($actionselect) {
                       $checkval = $user; 
                       if ($context eq 'course') {
                           if ($role eq 'st') {
                               $checkval .= ':st';
                           }
                           $checkval .= ':'.$in{'section'};
                           if ($role eq 'st') {
                               $checkval .= ':'.$in{'type'}.':'.$in{'lockedtype'};
                           }
                     }                      }
                       $r->print('<td><input type="checkbox" name="actionlist" value="'.
                                 $checkval.'"></td>');
                 }                  }
                 $r->print('<td><input type="checkbox" name="actionlist" value="'.  
                           $checkval.'"></td>');  
             }              }
             foreach my $item (@cols) {              foreach my $item (@cols) {
                 if ($item eq 'username') {                  if ($item eq 'username') {
                     $r->print('<td>'.&print_username_link($permission,\%in).'</td>');                      $r->print('<td>'.&print_username_link($mode,$permission,
                 } elsif (($item eq 'start' || $item eq 'end') && ($mode ne 'autoeroll') && ($actionselect)) {                                                            \%in).'</td>');
                   } elsif (($item eq 'start' || $item eq 'end') && ($actionselect)) {
                     $r->print('<td>'.$in{$item}.'<input type="hidden" name="'.$checkval.'_'.$item.'" value="'.$sdata->[$index{$item}].'" /></td>'."\n");                      $r->print('<td>'.$in{$item}.'<input type="hidden" name="'.$checkval.'_'.$item.'" value="'.$sdata->[$index{$item}].'" /></td>'."\n");
                 } else {                  } else {
                     $r->print('<td>'.$in{$item}.'</td>'."\n");                      $r->print('<td>'.$in{$item}.'</td>'."\n");
                 }                  }
             }              }
             if ($context eq 'course') {              if (($context eq 'course') && ($mode ne 'autoenroll')) {
                 if ($env{'form.showrole'} eq 'st' || $env{'form.showrole'} eq 'Any') {                  if ($env{'form.showrole'} eq 'st' || $env{'form.showrole'} eq 'Any') {
                     if ($displayclickers eq 'on') {                      if ($displayclickers eq 'on') {
                         my $clickers =                          my $clickers =
Line 2256  END Line 2285  END
 }  }
   
 sub print_username_link {  sub print_username_link {
     my ($permission,$in) = @_;      my ($mode,$permission,$in) = @_;
     my $output;      my $output;
     if (!$permission->{'cusr'}) {      if ($mode eq 'autoenroll') {
           $output = $in->{'username'};
       } elsif (!$permission->{'cusr'}) {
         $output = &Apache::loncommon::aboutmewrapper($in->{'username'},          $output = &Apache::loncommon::aboutmewrapper($in->{'username'},
                                                      $in->{'username'},                                                       $in->{'username'},
                                                      $in->{'domain'});                                                       $in->{'domain'});
Line 3723  sub can_create_user { Line 3754  sub can_create_user {
     return $cancreate;      return $cancreate;
 }  }
   
   sub get_permission {
       my ($context) = @_;
       my %permission;
       if ($context eq 'course') {
           if ((&Apache::lonnet::allowed('cta',$env{'request.course.id'})) ||
               (&Apache::lonnet::allowed('cin',$env{'request.course.id'})) ||
               (&Apache::lonnet::allowed('ccr',$env{'request.course.id'})) ||
               (&Apache::lonnet::allowed('cep',$env{'request.course.id'})) ||
               (&Apache::lonnet::allowed('cst',$env{'request.course.id'}))) {
               $permission{'cusr'} = 1;
               $permission{'view'} =
                    &Apache::lonnet::allowed('vcl',$env{'request.course.id'});
   
           }
           if (&Apache::lonnet::allowed('ccr',$env{'request.course.id'})) {
               $permission{'custom'} = 1;
           }
           if (&Apache::lonnet::allowed('vcl',$env{'request.course.id'})) {
               $permission{'view'} = 1;
           }
           if (!$permission{'view'}) {
               my $scope = $env{'request.course.id'}.'/'.$env{'request.course.sec'};
               $permission{'view'} =  &Apache::lonnet::allowed('vcl',$scope);
               if ($permission{'view'}) {
                   $permission{'view_section'} = $env{'request.course.sec'};
               }
           }
           if (&Apache::lonnet::allowed('mdg',$env{'request.course.id'})) {
               $permission{'grp_manage'} = 1;
           }
       } elsif ($context eq 'author') {
           $permission{'cusr'} = &authorpriv($env{'user.name'},$env{'request.role.domain'});
           $permission{'view'} = $permission{'cusr'};
       } else {
           if ((&Apache::lonnet::allowed('cad',$env{'request.role.domain'})) ||
               (&Apache::lonnet::allowed('cli',$env{'request.role.domain'})) ||
               (&Apache::lonnet::allowed('cau',$env{'request.role.domain'})) ||
               (&Apache::lonnet::allowed('csc',$env{'request.role.domain'})) ||
               (&Apache::lonnet::allowed('cdg',$env{'request.role.domain'})) ||
               (&Apache::lonnet::allowed('mau',$env{'request.role.domain'}))) {
               $permission{'cusr'} = 1;
           }
           if (&Apache::lonnet::allowed('ccr',$env{'request.role.domain'})) {
               $permission{'custom'} = 1;
           }
           $permission{'view'} = $permission{'cusr'};
       }
       my $allowed = 0;
       foreach my $perm (values(%permission)) {
           if ($perm) { $allowed=1; last; }
       }
       return (\%permission,$allowed);
   }
   
   # ==================================================== Figure out author access
   
   sub authorpriv {
       my ($auname,$audom)=@_;
       unless ((&Apache::lonnet::allowed('cca',$audom.'/'.$auname))
            || (&Apache::lonnet::allowed('caa',$audom.'/'.$auname))) { return ''; }    return 1;
   }
   
 1;  1;
   

Removed from v.1.15  
changed lines
  Added in v.1.16


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