version 1.159.2.18, 2021/01/04 03:47:01
|
version 1.159.2.20, 2021/02/10 11:36:15
|
Line 756 sub handler {
|
Line 756 sub handler {
|
} |
} |
if ($env{'form.symb'}) { |
if ($env{'form.symb'}) { |
$symb=&Apache::lonnet::symbclean($env{'form.symb'}); |
$symb=&Apache::lonnet::symbclean($env{'form.symb'}); |
if ($requrl eq '/adm/navmaps') { |
if (($requrl eq '/adm/navmaps') || |
my ($map,$mid,$murl)=&Apache::lonnet::decode_symb($symb); |
($requrl =~ m{^/adm/wrapper/}) || |
&Apache::lonnet::symblist($map,$murl => [$murl,$mid]); |
($requrl =~ m{^/adm/coursedocs/showdoc/})) { |
} elsif ($requrl =~ m|^/adm/wrapper/| |
unless (&Apache::lonnet::symbverify($symb,$requrl)) { |
|| $requrl =~ m|^/adm/coursedocs/showdoc/|) { |
if (&Apache::lonnet::is_on_map($requrl)) { |
my ($map,$mid,$murl)=&Apache::lonnet::decode_symb($symb); |
$symb = &Apache::lonnet::symbread($requrl); |
if ($map =~ /\.page$/) { |
unless (&Apache::lonnet::symbverify($symb,$requrl)) { |
my $mapsymb = &Apache::lonnet::symbread($map); |
undef($symb); |
($map,$mid,$murl)=&Apache::lonnet::decode_symb($mapsymb); |
} |
|
} |
|
} |
|
if ($symb) { |
|
if ($requrl eq '/adm/navmaps') { |
|
my ($map,$mid,$murl)=&Apache::lonnet::decode_symb($symb); |
|
&Apache::lonnet::symblist($map,$murl => [$murl,$mid]); |
|
} elsif (($requrl =~ m{^/adm/wrapper/}) || |
|
($requrl =~ m{^/adm/coursedocs/showdoc/})) { |
|
my ($map,$mid,$murl)=&Apache::lonnet::decode_symb($symb); |
|
if ($map =~ /\.page$/) { |
|
my $mapsymb = &Apache::lonnet::symbread($map); |
|
($map,$mid,$murl)=&Apache::lonnet::decode_symb($mapsymb); |
|
} |
|
&Apache::lonnet::symblist($map,$murl => [$murl,$mid], |
|
'last_known' =>[$murl,$mid]); |
|
} |
} |
} |
&Apache::lonnet::symblist($map,$murl => [$murl,$mid], |
|
'last_known' =>[$murl,$mid]); |
|
} elsif ((&Apache::lonnet::symbverify($symb,$requrl)) || |
} elsif ((&Apache::lonnet::symbverify($symb,$requrl)) || |
(($requrl=~m|(.*)/smpedit$|) && |
(($requrl=~m|(.*)/smpedit$|) && |
&Apache::lonnet::symbverify($symb,$1)) || |
&Apache::lonnet::symbverify($symb,$1)) || |
Line 827 sub handler {
|
Line 841 sub handler {
|
} |
} |
} |
} |
if ($invalidsymb) { |
if ($invalidsymb) { |
$r->log_reason('Invalid symb for '.$requrl.': '.$symb); |
if ($requrl eq '/adm/navmaps') { |
$env{'user.error.msg'}= |
undef($symb); |
"$requrl:bre:1:1:Invalid Access"; |
} else { |
return HTTP_NOT_ACCEPTABLE; |
$r->log_reason('Invalid symb for '.$requrl.': '.$symb); |
|
$env{'user.error.msg'}= |
|
"$requrl:bre:1:1:Invalid Access"; |
|
return HTTP_NOT_ACCEPTABLE; |
|
} |
} |
} |
} |
} |
} |
} |