[LON-CAPA-cvs] cvs: loncom /interface lonpdfupload.pm
raeburn
raeburn at source.lon-capa.org
Sun Mar 22 19:12:53 EDT 2026
raeburn Sun Mar 22 23:12:53 2026 EDT
Modified files:
/loncom/interface lonpdfupload.pm
Log:
- Bug 6121 -- PDF Forms.
Blocked actions during an exam or timed quiz can include submission of
PDF forms.
Index: loncom/interface/lonpdfupload.pm
diff -u loncom/interface/lonpdfupload.pm:1.34 loncom/interface/lonpdfupload.pm:1.35
--- loncom/interface/lonpdfupload.pm:1.34 Tue Mar 17 19:59:26 2026
+++ loncom/interface/lonpdfupload.pm Sun Mar 22 23:12:53 2026
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# PDF Form Upload Handler
#
-# $Id: lonpdfupload.pm,v 1.34 2026/03/17 19:59:26 raeburn Exp $
+# $Id: lonpdfupload.pm,v 1.35 2026/03/22 23:12:53 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -56,6 +56,25 @@
return HTTP_NOT_ACCEPTABLE;
}
+ if ($env{'request.course.id'}) {
+ my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+ my $clientip = &Apache::lonnet::get_requestor_ip($r);
+ my ($blocked,$blocktext) =
+ &Apache::loncommon::blocking_status('pdfform',$clientip,$cnum,$cdom,'/adm/pdfupload');
+ if ($blocked) {
+ my $checkrole = "cm./$cdom/$cnum";
+ if ($env{'request.course.sec'} ne '') {
+ $checkrole .= "/$env{'request.course.sec'}";
+ }
+ unless ((&Apache::lonnet::allowed('evb',undef,undef,$checkrole)) &&
+ ($env{'request.role'} !~ m{^st\./$cdom/$cnum})) {
+ &pdfforms_blocked($r,$blocktext);
+ return OK;
+ }
+ }
+ }
+
# Breadcrumbs
my $brcrum = [{'href' => '/adm/pdfupload',
'text' => 'Upload PDF Form'}];
@@ -587,6 +606,23 @@
return ($title, $grade);
}
+sub pdfforms_blocked {
+ my ($r,$blocktext) = @_;
+ my $pagetitle = &mt('Upload PDF Form');
+ &Apache::lonhtmlcommon::clear_breadcrumbs();
+ &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/pdfupload',
+ text=> $pagetitle});
+ my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs($pagetitle);
+ &Apache::loncommon::content_type($r,'text/html');
+ &Apache::loncommon::no_cache($r);
+ $r->send_http_header;
+ $r->print(&Apache::loncommon::start_page('Upload PDF Form').
+ $breadcrumbs.
+ $blocktext.
+ &Apache::loncommon::end_page());
+ return;
+}
+
sub parse_grade_answer {
my ($shortcut) = @_;
my %answerhash = ('EXACT_ANS' => &mt('You are correct.'),
More information about the LON-CAPA-cvs
mailing list