[LON-CAPA-cvs] cvs: loncom(version_2_11_X) /interface lonblockingstatus.pm

raeburn raeburn at source.lon-capa.org
Sun Sep 27 20:27:48 EDT 2020


raeburn		Mon Sep 28 00:27:48 2020 EDT

  Modified files:              (Branch: version_2_11_X)
    /loncom/interface	lonblockingstatus.pm 
  Log:
  - For 2.11
    Backport 1.17
  
  
Index: loncom/interface/lonblockingstatus.pm
diff -u loncom/interface/lonblockingstatus.pm:1.14.2.2 loncom/interface/lonblockingstatus.pm:1.14.2.3
--- loncom/interface/lonblockingstatus.pm:1.14.2.2	Tue Sep  8 03:57:48 2020
+++ loncom/interface/lonblockingstatus.pm	Mon Sep 28 00:27:48 2020
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # displays the blocking status table
 #
-# $Id: lonblockingstatus.pm,v 1.14.2.2 2020/09/08 03:57:48 raeburn Exp $
+# $Id: lonblockingstatus.pm,v 1.14.2.3 2020/09/28 00:27:48 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -43,11 +43,11 @@
     $r->send_http_header;
     return OK if $r->header_only;
 
-    my (%activities,$activity,$origurl);
+    my (%activities,$activity,$origurl,$origsymb);
     map { $activities{$_} = 1; } ('boards','chat','com','blogs','groups','port','printout','docs','passwd');
 
     # determine what kind of blocking we want details for
-    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['activity','url']);
+    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['activity','url','symb']);
     $activity = $env{'form.activity'};
 
     my $title = 'Communication Blocking Status Information';
@@ -57,15 +57,18 @@
         $title = 'Blocking Status Information';
         if ($activity eq 'docs') {
             $origurl = $env{'form.url'};
+            $origsymb = $env{'form.symb'};
         }
     }
     $r->print(&Apache::loncommon::start_page($title,undef,
                                             {'only_body' => 1}));
 
     if (($activity eq '') || (!$activities{$activity})) {
-        $r->print('<span class="LC_error">'.&mt('Error: unknown activity type blocked').'</span>');
+        $r->print('<p class="LC_error">'.&mt('Error: unknown activity type blocked').'</p>');
+    } elsif (($activity eq 'docs') && ($origurl eq '') && ($origsymb eq '')) {
+        $r->print('<p class="LC_error">'.&mt('Error: could not determine what content was blocked from access').'</p>');
     } else {
-        $r->print(&blockpage($activity,$origurl));
+        $r->print(&blockpage($activity,$origurl,$origsymb));
     }
     
     $r->print(&Apache::loncommon::end_page());
@@ -75,7 +78,7 @@
 
 
 sub blockpage {
-    my ($activity,$origurl) = @_;
+    my ($activity,$origurl,$origsymb) = @_;
 
     # in case of a portfolio block we need to determine the owner of the files
     # we're trying to look at. This information is passed via query string.
@@ -102,14 +105,44 @@
         }
     }
 
-
     # retrieve start/end of possible active blocking
-    my %setters;
-    my ($startblock,$endblock,$triggerblock) = 
-        &Apache::loncommon::blockcheck(\%setters,$activity,$uname,$udom,$origurl);
+    my (%setters,$startblock,$endblock,$triggerblock);
+
+    if ($activity eq 'docs') {
+        my ($cdom,$cnum);
+        if ($env{'request.course.id'}) {
+            $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+            $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+        }
+        my $cancheck;
+        if (($cdom ne '') && ($cnum ne '')) {
+            if ($origsymb =~ m{^uploaded/($match_domain)/($match_courseid)/}) {
+                my ($crsdom,$crsnum) = ($1,$2);
+                if (($cdom eq $crsdom) && ($cnum eq $crsnum)) {
+                    $cancheck = 1;
+                }
+            } else {
+                $cancheck = 1;
+            }
+        }
+        if ($cancheck) {
+            ($startblock,$endblock,$triggerblock) =
+                &Apache::loncommon::blockcheck(\%setters,$activity,$cnum,$cdom,$origurl,1,$origsymb,'blockingstatus');
+        } else {
+            return '<p class="LC_info">'.&mt('Could not determine why access is blocked.').'</p>';
+        }
+    } else {
+        ($startblock,$endblock,$triggerblock) = 
+            &Apache::loncommon::blockcheck(\%setters,$activity,$uname,$udom,$origurl,undef,$origsymb,'blockingstatus');
+    }
 
     # nothing to do if there's no active blocking
-    unless ($startblock && $endblock) { return ''; }
+    unless ($startblock && $endblock) {
+        if ($activity eq 'docs') {
+            return '<p class="LC_info">'.&mt('Content no longer blocked from access').'</p>';
+        }
+        return '<p class="LC_info">'.&mt('Access no longer blocked for this activity').'</p>';
+    }
 
     # lookup $activity -> description
                    #possible activity          #corresponding description




More information about the LON-CAPA-cvs mailing list