Diff for /loncom/interface/lonfeedback.pm between versions 1.179 and 1.180

version 1.179, 2006/02/09 20:30:47 version 1.180, 2006/02/09 22:11:54
Line 906  sub build_posting_display { Line 906  sub build_posting_display {
                             } else {                              } else {
                                 @{$$namesort{$lastname}{$firstname}} = ("$idx");                                  @{$$namesort{$lastname}{$firstname}} = ("$idx");
                             }                              }
                             if ($env{'course.'.$env{'request.course.id'}.'.allow_discussion_post_editing'} =~ m/yes/i) {                              if (&editing_allowed()) {
                                 if (($env{'user.domain'} eq $contrib{$idx.':senderdomain'}) && ($env{'user.name'} eq $contrib{$idx.':sendername'})) {                                  if (($env{'user.domain'} eq $contrib{$idx.':senderdomain'}) && ($env{'user.name'} eq $contrib{$idx.':sendername'})) {
                                     $sender.=' <a href="/adm/feedback?editdisc='.                                      $sender.=' <a href="/adm/feedback?editdisc='.
                                          $escsymb.':::'.$idx;                                           $escsymb.':::'.$idx;
Line 2992  sub handler { Line 2992  sub handler {
   
   &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
          ['hide','unhide','deldisc','postdata','preview','replydisc','editdisc','cmd','symb','onlyunread','allposts','onlyunmark','previous','markread','markonread','markondisp','toggoff','toggon','modifydisp','changes','navtime','navmaps','navurl','sortposts','applysort','rolefilter','statusfilter','sectionpick','posterlist','userpick','attach','origpage','currnewattach','deloldattach','keepold','allversions','export']);           ['hide','unhide','deldisc','postdata','preview','replydisc','editdisc','cmd','symb','onlyunread','allposts','onlyunmark','previous','markread','markonread','markondisp','toggoff','toggon','modifydisp','changes','navtime','navmaps','navurl','sortposts','applysort','rolefilter','statusfilter','sectionpick','posterlist','userpick','attach','origpage','currnewattach','deloldattach','keepold','allversions','export']);
     if ($env{'form.editdisc'}) {
         if (!(&editing_allowed())) {
             my $symb=(split(/\:\:\:/,$env{'form.editdisc'}))[0];
             my ($map,$id,$url)=&Apache::lonnet::decode_symb($symb);
             my $feedurl=&Apache::lonnet::clutter($url);
             &redirect_back($r,$feedurl,&mt('Editing not permitted').'<br />',                     '0','0','','',$env{'form.previous'},'','','',);
             return OK;
         }
     } 
   if ($env{'form.discsymb'}) {    if ($env{'form.discsymb'}) {
       my ($symb,$feedurl) = &get_feedurl_and_clean_symb($env{'form.discsymb'});        my ($symb,$feedurl) = &get_feedurl_and_clean_symb($env{'form.discsymb'});
       my $readkey = $symb.'_read';        my $readkey = $symb.'_read';
Line 3187  ENDREDIR Line 3195  ENDREDIR
       my ($symb,$idx)=split(/\:\:\:/,$entry);        my ($symb,$idx)=split(/\:\:\:/,$entry);
       ($symb,my $feedurl)=&get_feedurl_and_clean_symb($symb);        ($symb,my $feedurl)=&get_feedurl_and_clean_symb($symb);
   
         my $crs='/'.$env{'request.course.id'};
         if ($env{'request.course.sec'}) {
             $crs.='_'.$env{'request.course.sec'};
         }
         $crs=~s/\_/\//g;
         my $seeid=&Apache::lonnet::allowed('rin',$crs);
   
         if ($env{'form.hide'} && !$seeid && !(&editing_allowed())) {
             &redirect_back($r,$feedurl,&mt('Deletion not permitted').'<br />',                 '0','0','','',$env{'form.previous'},'','','',);
             return OK;
         }
   
       my %contrib=&Apache::lonnet::restore($symb,$env{'request.course.id'},        my %contrib=&Apache::lonnet::restore($symb,$env{'request.course.id'},
                           $env{'course.'.$env{'request.course.id'}.'.domain'},                            $env{'course.'.$env{'request.course.id'}.'.domain'},
           $env{'course.'.$env{'request.course.id'}.'.num'});            $env{'course.'.$env{'request.course.id'}.'.num'});
Line 3194  ENDREDIR Line 3214  ENDREDIR
       my $currenthidden=$contrib{'hidden'};        my $currenthidden=$contrib{'hidden'};
       my $currentstudenthidden=$contrib{'studenthidden'};        my $currentstudenthidden=$contrib{'studenthidden'};
   
       my $crs='/'.$env{'request.course.id'};  
       if ($env{'request.course.sec'}) {  
   $crs.='_'.$env{'request.course.sec'};  
       }  
       $crs=~s/\_/\//g;  
       my $seeid=&Apache::lonnet::allowed('rin',$crs);  
   
       if ($env{'form.hide'}) {        if ($env{'form.hide'}) {
   $currenthidden.='.'.$idx.'.';    $currenthidden.='.'.$idx.'.';
   unless ($seeid) {    unless ($seeid) {
Line 3477  sub get_feedurl_and_clean_symb { Line 3490  sub get_feedurl_and_clean_symb {
     my $feedurl = &get_feedurl($symb);      my $feedurl = &get_feedurl($symb);
     return ($symb,$feedurl);      return ($symb,$feedurl);
 }  }
   
   sub editing_allowed {
       my $can_edit = 0;
       my $cid = $env{'request.course.id'};
       my $role = (split(/\./,$env{'request.role'}))[0];
       my $section = $env{'request.course.sec'};
       my $allow_editing_config = $env{'course.'.$env{'request.course.id'}.
                                  '.allow_discussion_post_editing'};
       if ($allow_editing_config =~ m/^\s*yes\s*$/i) {
           $can_edit = 1;
       } else {
           my @editor_roles = split(/,/,$allow_editing_config);
           if (@editor_roles > 0) {
               foreach my $editor (@editor_roles) {
                   my ($editor_role,$editor_sec) = split(/:/,$editor);
                   if ($editor_role eq $role) {
                       if (defined($editor_sec)) {
                           if (defined($section)) {
                               if ($editor_sec eq $section) {
                                   $can_edit = 1;
                                   last;
                               }
                           }
                       } else {
                           $can_edit = 1;
                           last;
                       }
                   }
               }
           }
       }
       return $can_edit;
   }
   
 1;  1;
 __END__  __END__

Removed from v.1.179  
changed lines
  Added in v.1.180


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