version 1.129, 2009/10/20 01:57:38
|
version 1.136, 2011/06/13 02:44:36
|
Line 156 sub get_posted_cgi {
|
Line 156 sub get_posted_cgi {
|
for ($i=0;$i<=$#lines;$i++) { |
for ($i=0;$i<=$#lines;$i++) { |
if ($lines[$i]=~/^--\Q$contentsep\E/) { |
if ($lines[$i]=~/^--\Q$contentsep\E/) { |
if ($name) { |
if ($name) { |
chomp($value); |
$value=~s/[\r\n]+$//; |
if (ref($fields) eq 'ARRAY') { |
if (ref($fields) eq 'ARRAY') { |
next if (!grep(/^\Q$name\E$/,@{$fields})); |
next if (!grep(/^\Q$name\E$/,@{$fields})); |
} |
} |
Line 290 sub sso_login {
|
Line 290 sub sso_login {
|
} |
} |
} |
} |
|
|
my $domain = $r->dir_config('lonDefDomain'); |
my $domain = $r->dir_config('lonSSOUserDomain'); |
|
if ($domain eq '') { |
|
$domain = $r->dir_config('lonDefDomain'); |
|
} |
my $home=&Apache::lonnet::homeserver($user,$domain); |
my $home=&Apache::lonnet::homeserver($user,$domain); |
if ($home !~ /(con_lost|no_host|no_such_host)/) { |
if ($home !~ /(con_lost|no_host|no_such_host)/) { |
&Apache::lonnet::logthis(" SSO authorized user $user "); |
&Apache::lonnet::logthis(" SSO authorized user $user "); |
if ($r->dir_config("lonBalancer") eq 'yes') { |
if ($r->dir_config("lonBalancer") eq 'yes') { |
# login but immeaditly go to switch server to find us a new |
# login but immediately go to switch server to find us a new |
# machine |
# machine |
&Apache::lonauth::success($r,$user,$domain,$home,'noredirect'); |
&Apache::lonauth::success($r,$user,$domain,$home,'noredirect'); |
$env{'request.sso.login'} = 1; |
$env{'request.sso.login'} = 1; |
Line 417 sub handler {
|
Line 420 sub handler {
|
my $preserved; |
my $preserved; |
foreach my $pair (split(/&/,$query)) { |
foreach my $pair (split(/&/,$query)) { |
my ($name, $value) = split(/=/,$pair); |
my ($name, $value) = split(/=/,$pair); |
unless (($name eq 'symb') || ($name eq 'wrapperdisplay')) { |
unless ($name eq 'symb') { |
$preserved .= $pair.'&'; |
$preserved .= $pair.'&'; |
} |
} |
} |
} |
Line 449 sub handler {
|
Line 452 sub handler {
|
return OK; |
return OK; |
} |
} |
if (($access ne '2') && ($access ne 'F')) { |
if (($access ne '2') && ($access ne 'F')) { |
$env{'user.error.msg'}="$requrl:bre:1:1:Access Denied"; |
if ($requrl =~ m{^/res/}) { |
return HTTP_NOT_ACCEPTABLE; |
$access = &Apache::lonnet::allowed('bro',$requrl); |
|
if ($access ne 'F') { |
|
if ($requrl eq '/res/lib/templates/simpleproblem.problem/smpedit') { |
|
$access = &Apache::lonnet::allowed('bre','/res/lib/templates/simpleproblem.problem'); |
|
if ($access ne 'F') { |
|
$env{'user.error.msg'}="$requrl:bre:1:1:Access Denied"; |
|
return HTTP_NOT_ACCEPTABLE; |
|
} |
|
} else { |
|
$env{'user.error.msg'}="$requrl:bre:1:1:Access Denied"; |
|
return HTTP_NOT_ACCEPTABLE; |
|
} |
|
} |
|
} else { |
|
$env{'user.error.msg'}="$requrl:bre:1:1:Access Denied"; |
|
return HTTP_NOT_ACCEPTABLE; |
|
} |
} |
} |
} |
} |
if ($requrl =~ m|^/prtspool/|) { |
if ($requrl =~ m|^/prtspool/|) { |
Line 485 sub handler {
|
Line 504 sub handler {
|
$requrl=~/\.(\w+)$/; |
$requrl=~/\.(\w+)$/; |
my $query=$r->args; |
my $query=$r->args; |
if ((&Apache::loncommon::fileembstyle($1) eq 'ssi') || |
if ((&Apache::loncommon::fileembstyle($1) eq 'ssi') || |
($requrl=~/^\/adm\/.*\/(aboutme|navmaps|smppg|bulletinboard)(\?|$ )/x) || |
($requrl=~/^\/adm\/.*\/(aboutme|smppg|bulletinboard)(\?|$ )/x) || |
($requrl=~/^\/adm\/wrapper\//) || |
($requrl=~/^\/adm\/wrapper\//) || |
($requrl=~m|^/adm/coursedocs/showdoc/|) || |
($requrl=~m|^/adm/coursedocs/showdoc/|) || |
($requrl=~m|\.problem/smpedit$|) || |
($requrl=~m|\.problem/smpedit$|) || |
($requrl=~/^\/public\/.*\/syllabus$/)) { |
($requrl=~/^\/public\/.*\/syllabus$/) || |
|
($requrl=~/^\/adm\/(viewclasslist|navmaps)$/) || |
|
($requrl=~/^\/adm\/.*\/aboutme\/portfolio(\?|$)/)) { |
# ------------------------------------- This is serious stuff, get symb and log |
# ------------------------------------- This is serious stuff, get symb and log |
my $symb; |
my $symb; |
if ($query) { |
if ($query) { |
Line 504 sub handler {
|
Line 525 sub handler {
|
'last_known' =>[$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)) || |
|
(($requrl=~m|(.*/aboutme)/portfolio$|) && |
|
&Apache::lonnet::symbverify($symb,$1))) { |
my ($map,$mid,$murl)=&Apache::lonnet::decode_symb($symb); |
my ($map,$mid,$murl)=&Apache::lonnet::decode_symb($symb); |
&Apache::lonnet::symblist($map,$murl => [$murl,$mid], |
&Apache::lonnet::symblist($map,$murl => [$murl,$mid], |
'last_known' =>[$murl,$mid]); |
'last_known' =>[$murl,$mid]); |
Line 516 sub handler {
|
Line 539 sub handler {
|
return HTTP_NOT_ACCEPTABLE; |
return HTTP_NOT_ACCEPTABLE; |
} |
} |
} else { |
} else { |
|
if ($requrl=~m{^(/adm/.*/aboutme)/portfolio$}) { |
|
$requrl = $1; |
|
} |
$symb=&Apache::lonnet::symbread($requrl); |
$symb=&Apache::lonnet::symbread($requrl); |
if (&Apache::lonnet::is_on_map($requrl) && $symb && |
if (&Apache::lonnet::is_on_map($requrl) && $symb && |
!&Apache::lonnet::symbverify($symb,$requrl)) { |
!&Apache::lonnet::symbverify($symb,$requrl)) { |