Diff for /loncom/publisher/lonunauthorized.pm between versions 1.17 and 1.19

version 1.17, 2013/06/07 16:07:49 version 1.19, 2018/11/26 03:49:04
Line 102  sub handler { Line 102  sub handler {
         if ($ENV{'REDIRECT_URL'} =~ m{^/adm/([^/]+)}) {          if ($ENV{'REDIRECT_URL'} =~ m{^/adm/([^/]+)}) {
             my $action = $1;                 my $action = $1;   
             my ($option,$filename,$filename1,$filename2,$decompress,              my ($option,$filename,$filename1,$filename2,$decompress,
                 $qualifiedfilename);                  $qualifiedfilename,$warning);
               my %deniedactions = &get_denied_action_text();
             if ($ENV{'REDIRECT_QUERY_STRING'} ne '') {              if ($ENV{'REDIRECT_QUERY_STRING'} ne '') {
                 foreach my $pair (split(/&/,$ENV{'REDIRECT_QUERY_STRING'})) {                  foreach my $pair (split(/&/,$ENV{'REDIRECT_QUERY_STRING'})) {
                     my ($name,$value) = split(/=/,$pair);                      my ($name,$value) = split(/=/,$pair);
Line 130  sub handler { Line 131  sub handler {
                             $option = 'cstr';                              $option = 'cstr';
                         }                          }
                     } elsif ($name eq 'filetwo') {                      } elsif ($name eq 'filetwo') {
                         $option = $value;                           $option = $value;
                     }                      }
                 }                  }
                 if (($action eq 'upload') || ($action eq 'testbank')) {                  if (($action eq 'upload') || ($action eq 'testbank')) {
                     if (($filename1 ne '') && ($filename ne '')) {                      if (($filename1 ne '') && ($filename2 ne '')) {
                         $filename = $filename1.$filename2;                          $filename = $filename1.$filename2;
                     }                      }
                 } elsif ($action eq 'cfile') {                  } elsif ($action eq 'cfile') {
Line 144  sub handler { Line 145  sub handler {
                         $filename = $qualifiedfilename;                          $filename = $qualifiedfilename;
                     }                      }
                 }                  }
                 my %deniedactions = &get_denied_action_text();  
                 my $warning;  
                 if ($option eq 'decompress') {                  if ($option eq 'decompress') {
                     $warning = $deniedactions{$option};                      $warning = $deniedactions{$option};
                 } else {                  } else {
Line 173  sub handler { Line 172  sub handler {
                               &mt('You are not permitted to take this action.').                                &mt('You are not permitted to take this action.').
                               '</p>');                                '</p>');
                 }                  }
               } elsif (($action eq 'upload') || ($action eq 'testbank')) {
                   $filename1 = $env{'form.filename1'};
                   $filename2 = $env{'form.filename2'};
                   if (($filename1 ne '') && ($filename2 ne '')) {
                       $filename = $filename1.$filename2;
                   }
                   $warning = $deniedactions{$action};
                   if ($warning) {
                       if ($filename =~ m{^/priv/.+\.\d+\.[^.]+$}) {
                           $r->print('<p class="LC_error">'.
                                     &mt('There is a problem with the filename').' '.
                                     '<span class="LC_filename">'.$filename.'</span></p>'.
                                     '<p class="LC_warning">'.
                                     &mt('The suggested filename may not include the pattern ".number.extension" as LON-CAPA reserves that pattern for its internal versioning mechanism.').
                                     '</p>');
                       } else {
                           $r->print('<p class="LC_error">'.
                                     $deniedactions{$action}.'</p><p class="LC_warning">'.
                                     &mt('You do not have authoring privileges for this resource').' '.
                                         '<span class="LC_filename">'.$filename.'</span>'.
                                     '</p>');
                       }
                   } else {
                       $r->print('<p class="LC_error">'.
                                 &mt('You are not permitted to take this action.').
                                 '</p>');
                   }
             }              }
         } elsif ($r->uri =~ m{priv/.+\.\d+\.[^.]+$}) {          } elsif ($r->uri =~ m{priv/.+\.\d+\.[^.]+$}) {
             $r->print('<p class="LC_error">'.              $r->print('<p class="LC_error">'.
Line 203  sub handler { Line 229  sub handler {
         my $realownerhome=          my $realownerhome=
     &Apache::lonnet::homeserver($realownername,$realownerdom);      &Apache::lonnet::homeserver($realownername,$realownerdom);
         unless ($realownerhome eq 'no_host') {          unless ($realownerhome eq 'no_host') {
             my $plainname=&Apache::loncommon::plainname($realownername,$realownerdom);              if (&Apache::lonnet::is_course($realownerdom,$realownername)) {
             my $user=$realownername.':'.$realownerdom;                  my $ccrole = 'cc';
             my $userlink=&Apache::loncommon::aboutmewrapper(                  my %crsenv = &Apache::lonnet::coursedescription("$realownerdom/$realownername",{one_time => 1});
                              $plainname.' ('.$user.')'                  my $cdesc = $crsenv{'description'};
                             ,$realownername                  my $crstype = $crsenv{'type'};
                             ,$realownerdom);                  if ($crstype eq 'Community') {
     $r->print('<p>'                      $ccrole = 'co';
                      .&mt('Contact [_1] for access.',$userlink)                  }
                      .'</p>');                  my $rolename = $crsenv{$ccrole.'.plaintext'};
                   if ($rolename eq '') {
                       $rolename = &Apache::lonnet::plaintext($ccrole,$crstype,$realownerdom.'_'.$realownername,1);
                   }
                   my $allowed = &Apache::lonnet::allowed('mdc',$realownerdom.'_'.$realownername);
                   if (!$allowed) {
                       my %roleshash = &Apache::lonnet::get_my_roles('','','userroles',['active'],
                                                                     [$ccrole],[$realownerdom]);
                       if (exists($roleshash{$realownername.':'.$realownerdom.':'.$ccrole})) {
                           $r->print(&mt('[_1]Switch role[_2] for access',
                                         '<a href="/adm/roles?selectrole=1&amp;'.
                                         &HTML::Entities::encode($ccrole."./$realownerdom/$realownername".'=1','<>&"').
                                         '&amp;orgurl='.&HTML::Entities::encode($env{'request.editurl'},'<>&"').
                                         '">','<a/>'));
                       } else {
                           if ($crstype eq 'Community') {
                               $r->print('<p>'
                                        .&mt('Contact a [_1] in the community ([_2]) for access.',$rolename,$cdesc)
                                        .'</p>');
                           } else {
                               $r->print('<p>'
                                        .&mt('Contact a [_1] in the course ([_2]) for access.',$rolename,$cdesc)
                                        .'</p>');
                           }
                       }
                   }
               } else {
                   my $plainname=&Apache::loncommon::plainname($realownername,$realownerdom);
                   my $user=$realownername.':'.$realownerdom;
                   my $userlink=&Apache::loncommon::aboutmewrapper(
                                    $plainname.' ('.$user.')'
                                   ,$realownername
                                   ,$realownerdom);
           $r->print('<p>'
                            .&mt('Contact [_1] for access.',$userlink)
                            .'</p>');
               }
         }          }
     }      }
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());

Removed from v.1.17  
changed lines
  Added in v.1.19


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