--- loncom/interface/lonstatistics.pm 2003/05/12 22:07:17 1.68 +++ loncom/interface/lonstatistics.pm 2003/05/13 14:25:37 1.69 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstatistics.pm,v 1.68 2003/05/12 22:07:17 matthew Exp $ +# $Id: lonstatistics.pm,v 1.69 2003/05/13 14:25:37 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -230,6 +230,11 @@ sub PrepareClasslist { } } # + # Deal with instructors with restricted section access + if ($ENV{'request.course.sec'} ne '') { + @SelectedSections = ($ENV{'request.course.sec'}); + } + # # Set up %StudentData @StudentDataOrder = qw/fullname username domain id section status/; foreach my $field (@StudentDataOrder) { @@ -238,7 +243,6 @@ sub PrepareClasslist { $StudentData{$field}->{'width'} = $StudentData{$field}->{'base_width'}; } - # # get the status requested my $requested_status = 'Active'; @@ -282,8 +286,12 @@ sub PrepareClasslist { } # # Put the consolidated section data in the right place - @Sections = sort {$a cmp $b} keys(%Sections); - unshift(@Sections,'all'); # Put 'all' at the front of the list + if ($ENV{'request.course.sec'} ne '') { + @Sections = ($ENV{'request.course.sec'}); + } else { + @Sections = sort {$a cmp $b} keys(%Sections); + unshift(@Sections,'all'); # Put 'all' at the front of the list + } # # Sort the Students my $sortby = 'fullname'; @@ -883,10 +891,15 @@ sub handler { if ($loaderror) { return $loaderror; } # # Check for access - unless(&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) { + if (! &Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) { $ENV{'user.error.msg'}= - $r->uri.":vgr:0:0:Cannot view grades for complete course"; - return HTTP_NOT_ACCEPTABLE; + $r->uri.":vgr:0:0:Cannot view grades for complete course"; + if (! &Apache::lonnet::allowed('vgr', + $ENV{'request.course.id'}.'/'.$ENV{'request.course.sec'})) { + $ENV{'user.error.msg'}= + $r->uri.":vgr:0:0:Cannot view grades with given role"; + return HTTP_NOT_ACCEPTABLE; + } } # # Set document type for header only