version 1.21, 2018/04/17 14:02:56
|
version 1.22, 2018/04/21 20:34:44
|
Line 38 sub handler {
|
Line 38 sub handler {
|
my $r = shift; |
my $r = shift; |
# FIXME line remove when mod_perl fixes BUG#4948 |
# FIXME line remove when mod_perl fixes BUG#4948 |
$r->notes->set('error-notes' => ''); |
$r->notes->set('error-notes' => ''); |
if ($r->uri =~ m{^/adm/lti/(.+)$}) { |
if ($r->uri =~ m{^/+tiny/+($match_domain)/+(\w+)$}) { |
my $realuri = $1; |
|
my %user; |
|
my $handle = &Apache::lonnet::check_for_valid_session($r,undef,\%user); |
|
if (($handle ne '') && ($user{'lti'})) { |
|
if ($realuri =~ m{^uploaded/$match_domain/$match_courseid/(default|supplemental)(|_\d+)\.(?:sequence|page)___\d+___.+$}) { |
|
if ($user{'ltiuri'} ne $realuri) { |
|
&Apache::lonnet::appenv({'request.lti.uri' => $realuri}); |
|
} |
|
my ($map,$resid,$url) = split(/___/,$realuri); |
|
$realuri = &Apache::lonnet::clutter($url).'?symb='.$realuri; |
|
} elsif ($realuri =~ m{^res/$match_domain/$match_username/.+\.(?:sequence|page)___\d+___.+$}) { |
|
if ($user{'ltiuri'} ne $realuri) { |
|
&Apache::lonnet::appenv({'request.lti.uri' => $realuri}); |
|
} |
|
my ($map,$resid,$url) = split(/___/,$realuri); |
|
$realuri = &Apache::lonnet::clutter($url).'?symb='.$realuri; |
|
} elsif ($realuri =~ m{^tiny/$match_domain/\w+$}) { |
|
$realuri = '/'.$realuri; |
|
if ($user{'ltiuri'} ne $realuri) { |
|
&Apache::lonnet::appenv({'request.lti.uri' => $realuri}); |
|
} |
|
} elsif ($realuri =~ m{($match_domain)/($match_courseid)$}) { |
|
$realuri = '/adm/navmaps'; |
|
if ($user{'ltiuri'} ne '') { |
|
&Apache::lonnet::delenv('request.lti.uri'); |
|
} |
|
} else { |
|
$realuri = '/'.$realuri; |
|
if ($realuri =~ m{/default_\d+\.sequence$}) { |
|
if ($user{'ltiuri'} ne $realuri) { |
|
&Apache::lonnet::appenv({'request.lti.uri' => $realuri}); |
|
} |
|
$realuri .= (($realuri =~/\?/)?'&':'?').'navmap=1'; |
|
} elsif ($realuri =~ m{^/res/.+\.sequence$}) { |
|
if ($user{'ltiuri'} ne $realuri) { |
|
&Apache::lonnet::appenv({'request.lti.uri' => $realuri}); |
|
} |
|
$realuri .= (($realuri =~/\?/)?'&':'?').'navmap=1'; |
|
} elsif ($realuri =~ m{\.page$}) { |
|
if ($user{'ltiuri'} ne $realuri) { |
|
&Apache::lonnet::appenv({'request.lti.uri' => $realuri}); |
|
} |
|
} |
|
} |
|
my $host = $r->headers_in->get('Host'); |
|
if ($host) { |
|
my $protocol = 'http'; |
|
if ($r->get_server_port == 443) { |
|
$protocol = 'https'; |
|
} |
|
my $location = $protocol.'://'.$host.$realuri; |
|
$r->headers_out->set(Location => $location); |
|
return REDIRECT; |
|
} |
|
} |
|
} elsif ($r->uri =~ m{^/+tiny/+($match_domain)/+(\w+)$}) { |
|
my ($cdom,$key) = ($1,$2); |
my ($cdom,$key) = ($1,$2); |
if (&Apache::lonnet::domain($cdom) ne '') { |
if (&Apache::lonnet::domain($cdom) ne '') { |
my %user; |
my %user; |