Diff for /loncom/interface/portfolio.pm between versions 1.266 and 1.267

version 1.266, 2022/09/18 22:33:45 version 1.267, 2023/12/28 15:57:27
Line 267  sub display_directory_line { Line 267  sub display_directory_line {
   
 sub display_directory {  sub display_directory {
     my ($r,$url,$current_path,$is_empty,$dir_list,$group,$can_upload,      my ($r,$url,$current_path,$is_empty,$dir_list,$group,$can_upload,
         $can_modify,$can_delete,$can_setacl)=@_;          $can_modify,$can_delete,$can_setacl,$can_viewacl)=@_;
     my $iconpath= $r->dir_config('lonIconsURL') . "/";      my $iconpath= $r->dir_config('lonIconsURL') . "/";
     my $select_mode;      my $select_mode;
     my $checked_files;      my $checked_files;
     my $port_path = &get_port_path();      my $port_path = &get_port_path();
     my ($uname,$udom) = &get_name_dom($group);      my ($uname,$udom) = &get_name_dom($group);
     my $access_admin_text = &mt('View Status');      my $access_admin_text;
       if ($can_viewacl) {
           $access_admin_text = &mt('View Status');
       }
     if ($can_setacl) {      if ($can_setacl) {
         $access_admin_text = &mt('View/Change Status');          $access_admin_text = &mt('View/Change Status');
     }      }
Line 514  sub display_directory { Line 517  sub display_directory {
     }      }
  }   }
                 &display_directory_line($r,$select_mode, $filename, $mtime, $size, $css_class, $line,                   &display_directory_line($r,$select_mode, $filename, $mtime, $size, $css_class, $line, 
                                         \%access_controls, $curr_access,$now, $version_flag, $href_location,                                           \%access_controls, $curr_access, $now, $version_flag, $href_location, 
                                         $url, $current_path, $access_admin_text);                                          $url, $current_path, $access_admin_text);
  if ($show_versions) {   if ($show_versions) {
     foreach my $dir_line (@{ $versioned{$fullpath} }) {      foreach my $dir_line (@{ $versioned{$fullpath} }) {
Line 887  sub access_for_renamed { Line 890  sub access_for_renamed {
 }  }
   
 sub display_access {  sub display_access {
     my ($r,$url,$group,$can_setacl,$port_path,$action) = @_;      my ($r,$url,$group,$can_setacl,$can_viewacl,$port_path,$action) = @_;
     my ($uname,$udom) = &get_name_dom($group);      my ($uname,$udom) = &get_name_dom($group);
     my $file_name = $env{'form.currentpath'}.$env{'form.access'};      my $file_name = $env{'form.currentpath'}.$env{'form.access'};
     $file_name = &prepend_group($file_name);      $file_name = &prepend_group($file_name);
Line 938  sub display_access { Line 941  sub display_access {
                         'cancel' => &mt('Return to directory'),                          'cancel' => &mt('Return to directory'),
                       };                        };
         &close_form($r,$url,$button_text);          &close_form($r,$url,$button_text);
     } else {      } elsif ($can_viewacl) {
         $r->print($header);          $r->print($header);
         if ($aclcount) {            if ($aclcount) {  
             $r->print($info);              $r->print($info);
         }          }
         &view_access_settings($r,$url,$access_controls{$file_name},$aclcount);          &view_access_settings($r,$url,$access_controls{$file_name},$aclcount);
       } else {
           $r->print($header);
           $r->print(&mt('You do not have sufficient privileges to view access controls').'<br />');
     }      }
       my %anchor_fields = (
           'currentpath' => $env{'form.currentpath'}
       );
       $r->print('<br />'.&make_anchor($url, \%anchor_fields, &mt('Return to directory')));
       return;
 }  }
   
 sub explain_conditionals {  sub explain_conditionals {
Line 2515  sub missing_priv { Line 2526  sub missing_priv {
                       delete => 'delete files',                        delete => 'delete files',
                       rename => 'rename files',                        rename => 'rename files',
                       setacl => 'set access controls for files',                        setacl => 'set access controls for files',
                         viewacl => 'view access controls for files',
     );      );
     my $escpath = &HTML::Entities::encode($env{'form.currentpath'},'&<>"');      my $escpath = &HTML::Entities::encode($env{'form.currentpath'},'&<>"');
     my $rtnlink = '<a href="'.$url;      my $rtnlink = '<a href="'.$url;
Line 2670  sub handler { Line 2682  sub handler {
         $url = $1.$2;          $url = $1.$2;
         $caller = $2;          $caller = $2;
     }      }
     my ($can_modify,$can_delete,$can_upload,$can_setacl);      my ($can_modify,$can_delete,$can_upload,$can_setacl,$can_viewacl);
     if ($caller eq 'coursegrp_portfolio') {      if ($caller eq 'coursegrp_portfolio') {
     #  Needs to be in a course      #  Needs to be in a course
         if (! ($env{'request.course.fn'})) {          if (! ($env{'request.course.fn'})) {
Line 2714  sub handler { Line 2726  sub handler {
             $can_delete = 1;              $can_delete = 1;
             $can_upload = 1;              $can_upload = 1;
             $can_setacl = 1;              $can_setacl = 1;
               $can_viewacl = 1;
         } else {          } else {
             if (&Apache::lonnet::allowed('agf',$env{'request.course.id'}.'/'.$group)) {              if (&Apache::lonnet::allowed('agf',$env{'request.course.id'}.'/'.$group)) {
                 $can_setacl = 1;                  $can_setacl = 1;
Line 2727  sub handler { Line 2740  sub handler {
             if (&Apache::lonnet::allowed('dgf',$env{'request.course.id'}.'/'.$group)) {              if (&Apache::lonnet::allowed('dgf',$env{'request.course.id'}.'/'.$group)) {
                 $can_delete = 1;                  $can_delete = 1;
             }              }
               if (&Apache::lonnet::allowed('rgf',$env{'request.course.id'}.'/'.$group)) {
                   $can_viewacl = 1;
               }
         }          }
     } else {      } else {
         ($uname,$udom) = &get_name_dom();          ($uname,$udom) = &get_name_dom();
Line 2735  sub handler { Line 2751  sub handler {
         $can_modify = 1;          $can_modify = 1;
         $can_delete = 1;          $can_delete = 1;
         $can_upload = 1;          $can_upload = 1;
         $can_setacl = 1;          if (&Apache::lonnet::usertools_access('','','portaccess',
                                                 undef,'tools')) {
               $can_viewacl = 1;
               $can_setacl = 1;
           }
     }      }
   
     my $port_path = &get_port_path();      my $port_path = &get_port_path();
Line 2916  sub handler { Line 2936  sub handler {
         }          }
     } elsif ($env{'form.access'}) {      } elsif ($env{'form.access'}) {
         $env{'form.selectfile'} = $env{'form.access'};          $env{'form.selectfile'} = $env{'form.access'};
         if (!defined($env{'form.action'})) {           if (!defined($env{'form.action'})) {
             $env{'form.action'} = 'chgaccess';              $env{'form.action'} = 'chgaccess';
         }          }
         &display_access($r,$url,$group,$can_setacl,$port_path,$env{'form.action'});          if (($can_viewacl) || ($can_setacl)) {
               &display_access($r,$url,$group,$can_setacl,$can_viewacl,$port_path,$env{'form.action'});
           } else {
               &missing_priv($r,$url,'viewacl');
           }
     } elsif (($env{'form.action'} eq 'chgaccess') ||       } elsif (($env{'form.action'} eq 'chgaccess') || 
              ($env{'form.action'} eq 'chgconditions')) {               ($env{'form.action'} eq 'chgconditions')) {
         if ($can_setacl) {          if ($can_setacl) {
Line 2993  sub handler { Line 3017  sub handler {
  &display_common($r,$url,$current_path,$is_empty,$dirlistref,   &display_common($r,$url,$current_path,$is_empty,$dirlistref,
  $can_upload,$group);   $can_upload,$group);
         &display_directory($r,$url,$current_path,$is_empty,$dirlistref,$group,          &display_directory($r,$url,$current_path,$is_empty,$dirlistref,$group,
                            $can_upload,$can_modify,$can_delete,$can_setacl);                             $can_upload,$can_modify,$can_delete,$can_setacl,
                              $can_viewacl);
     }      }
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());
     return OK;      return OK;

Removed from v.1.266  
changed lines
  Added in v.1.267


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