version 1.14.2.1, 2020/09/03 14:06:06
|
version 1.17, 2020/09/28 00:10:28
|
Line 43 sub handler {
|
Line 43 sub handler {
|
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
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'); |
map { $activities{$_} = 1; } ('boards','chat','com','blogs','groups','port','printout','docs','grades','passwd','search'); |
|
|
# determine what kind of blocking we want details for |
# 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'}; |
$activity = $env{'form.activity'}; |
|
|
my $title = 'Communication Blocking Status Information'; |
my $title = 'Communication Blocking Status Information'; |
|
|
if (($activity eq 'docs') || ($activity eq 'printout') || |
if (($activity eq 'docs') || ($activity eq 'printout') || |
($activity eq 'passwd')) { |
($activity eq 'grades') || ($activity eq 'passwd') || |
|
($activity eq 'search')) { |
$title = 'Blocking Status Information'; |
$title = 'Blocking Status Information'; |
if ($activity eq 'docs') { |
if ($activity eq 'docs') { |
$origurl = $env{'form.url'}; |
$origurl = $env{'form.url'}; |
|
$origsymb = $env{'form.symb'}; |
} |
} |
} |
} |
$r->print(&Apache::loncommon::start_page($title,undef, |
$r->print(&Apache::loncommon::start_page($title,undef, |
{'only_body' => 1})); |
{'only_body' => 1})); |
|
|
if (($activity eq '') || (!$activities{$activity})) { |
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 { |
} else { |
$r->print(&blockpage($activity,$origurl)); |
$r->print(&blockpage($activity,$origurl,$origsymb)); |
} |
} |
|
|
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
Line 75 sub handler {
|
Line 79 sub handler {
|
|
|
|
|
sub blockpage { |
sub blockpage { |
my ($activity,$origurl) = @_; |
my ($activity,$origurl,$origsymb) = @_; |
|
|
# in case of a portfolio block we need to determine the owner of the files |
# 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. |
# we're trying to look at. This information is passed via query string. |
Line 102 sub blockpage {
|
Line 106 sub blockpage {
|
} |
} |
} |
} |
|
|
|
|
# retrieve start/end of possible active blocking |
# retrieve start/end of possible active blocking |
my %setters; |
my (%setters,$startblock,$endblock,$triggerblock); |
my ($startblock,$endblock,$triggerblock) = |
|
&Apache::loncommon::blockcheck(\%setters,$activity,$uname,$udom,$origurl); |
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 |
# 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 |
# lookup $activity -> description |
#possible activity #corresponding description |
#possible activity #corresponding description |
Line 122 sub blockpage {
|
Line 156 sub blockpage {
|
printout => 'Printout generation', |
printout => 'Printout generation', |
docs => 'Course Content', |
docs => 'Course Content', |
passwd => 'Changing of passwords', |
passwd => 'Changing of passwords', |
|
grades => 'Course Gradebook', |
|
search => 'Content Search', |
); |
); |
|
|
if ($activity eq 'groups' || $activity eq 'boards') { |
if ($activity eq 'groups' || $activity eq 'boards') { |
if (&Apache::loncommon::course_type() eq 'Community') { |
if (&Apache::loncommon::course_type() eq 'Community') { |
$descs{'boards'} = 'Discussion posts in this community', |
$descs{'boards'} = 'Discussion posts in this community'; |
$descs{'groups'} = 'Groups in this community', |
$descs{'groups'} = 'Groups in this community'; |
$descs{'docs'} = 'Community Content', |
$descs{'docs'} = 'Community Content'; |
|
$descs{'grades'} = 'Community Gradebook'; |
} |
} |
} |
} |
|
|
Line 144 sub blockpage {
|
Line 181 sub blockpage {
|
my $showend = Apache::lonlocal::locallocaltime($endblock); |
my $showend = Apache::lonlocal::locallocaltime($endblock); |
|
|
my $output; |
my $output; |
|
|
if ( ref($description) ne 'ARRAY' ) { |
if ( ref($description) ne 'ARRAY' ) { |
#default: $description is one of the above descriptions |
#default: $description is one of the above descriptions |
if ($activity eq 'docs') { |
if ($activity eq 'docs') { |
Line 152 sub blockpage {
|
Line 189 sub blockpage {
|
. ' view will be unavailable between [_1] and [_2] because' |
. ' view will be unavailable between [_1] and [_2] because' |
. ' access to selected '.$description.' is being blocked.' |
. ' access to selected '.$description.' is being blocked.' |
,$showstart, $showend); |
,$showstart, $showend); |
} elsif (($activity eq 'printout') || ($activity eq 'passwd')) { |
} elsif (($activity eq 'printout') || ($activity eq 'passwd') || |
|
($activity eq 'grades') || ($activity eq 'search')) { |
$output = mt( $description |
$output = mt( $description |
. ' will be unavailable between [_1] and [_2] because' |
. ' will be unavailable between [_1] and [_2] because' |
. ' this functionality is being blocked.' |
. ' this functionality is being blocked.' |