# The LearningOnline Network
# Information about deep-link only access for a resource
#
# $Id: lonprotected.pm,v 1.2 2019/02/09 03:56:54 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# LON-CAPA is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# LON-CAPA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# /home/httpd/html/adm/gpl.txt
#
# http://www.lon-capa.org/
#
package Apache::lonprotected;
use strict;
use Apache::Constants qw(:common :http REDIRECT);
use Apache::lonnet;
use Apache::loncommon();
use Apache::lonlocal;
sub handler {
my $r = shift;
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
return OK if $r->header_only;
&Apache::lonlocal::get_language_handle($r);
my $origurl = $r->uri;
my ($blocktext,$title);
if ($origurl eq '/adm/protected') {
$blocktext = '<div>'.
&mt('This page is displayed when access is blocked to course/community content, in the case where access via a deep-link is required.').
'<br />'.&mt("The restriction to access via a deep-link which can be set for specific content or a folder in a course does not apply to course personnel with elevated privileges in the course.").
'<div>';
$title = 'Access Information';
} elsif ($env{'request.course.id'}) {
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
$blocktext = '<h2>'.&mt('Access denied').'</h2>'."\n".
'<div>'.
&mt('The resource you are trying to display must be accessed via a link to the resource from a web page external to LON-CAPA ').
'</div>';
$title = 'Access Blocked';
} else {
my $server = &Apache::lonnet::absolute_url();
$r->header_out(Location => $server.$origurl);
return REDIRECT;
}
$r->print(&Apache::loncommon::start_page($title));
$r->print($blocktext);
$r->print(&Apache::loncommon::end_page());
return OK;
}
sub setup_handler {
my ($r) = @_;
$r->set_handlers('PerlHandler'=>
[\&Apache::lonprotected::handler]);
$r->handler('perl-script');
}
1;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>