Fixed a bug where 404 and 403 errors under mod perl would cause duplicate output.

This commit is contained in:
JT Smith 2002-06-05 04:48:21 +00:00
parent d6705a0bb6
commit a465864449
2 changed files with 45 additions and 5 deletions

View file

@ -20,7 +20,15 @@ use WebGUI::URL;
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub adminOnly { sub adminOnly {
$session{header}{status} = 403; if($session{env}{MOD_PERL}) {
my $r = Apache->request;
if(defined($r)) {
$r->custom_response(403, $session{page}{url} );
$r->status(403);
}
} else {
$session{header}{status} = 403;
}
my ($output, $sth, @data); my ($output, $sth, @data);
$output = '<h1>'.WebGUI::International::get(35).'</h1>'; $output = '<h1>'.WebGUI::International::get(35).'</h1>';
$output .= WebGUI::International::get(36); $output .= WebGUI::International::get(36);
@ -81,7 +89,15 @@ sub canViewPage {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub insufficient { sub insufficient {
$session{header}{status} = 403; if($session{env}{MOD_PERL}) {
my $r = Apache->request;
if(defined($r)) {
$r->custom_response(403, $session{page}{url} );
$r->status(403);
}
} else {
$session{header}{status} = 403;
}
my ($output); my ($output);
$output = '<h1>'.WebGUI::International::get(37).'</h1>'; $output = '<h1>'.WebGUI::International::get(37).'</h1>';
$output .= WebGUI::International::get(38); $output .= WebGUI::International::get(38);
@ -109,7 +125,15 @@ sub isInGroup {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub noAccess { sub noAccess {
$session{header}{status} = 403; if($session{env}{MOD_PERL}) {
my $r = Apache->request;
if(defined($r)) {
$r->custom_response(403, $session{page}{url} );
$r->status(403);
}
} else {
$session{header}{status} = 403;
}
my ($output); my ($output);
if ($session{user}{userId} <= 1) { if ($session{user}{userId} <= 1) {
$output = WebGUI::Operation::Account::www_displayAccount(); $output = WebGUI::Operation::Account::www_displayAccount();
@ -123,7 +147,15 @@ sub noAccess {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub notMember { sub notMember {
$session{header}{status} = 403; if($session{env}{MOD_PERL}) {
my $r = Apache->request;
if(defined($r)) {
$r->custom_response(403, $session{page}{url} );
$r->status(403);
}
} else {
$session{header}{status} = 403;
}
my ($output); my ($output);
$output = '<h1>'.WebGUI::International::get(345).'</h1>'; $output = '<h1>'.WebGUI::International::get(345).'</h1>';
$output .= WebGUI::International::get(346); $output .= WebGUI::International::get(346);

View file

@ -44,7 +44,15 @@ sub _getPageInfo {
($pageId) = WebGUI::SQL->quickArray("select pageId from page where urlizedTitle='".$pageName."'",$_[1]); ($pageId) = WebGUI::SQL->quickArray("select pageId from page where urlizedTitle='".$pageName."'",$_[1]);
if ($pageId eq "") { if ($pageId eq "") {
$pageId = $_[2]; $pageId = $_[2];
$session{header}{status} = '404'; if($ENV{"MOD_PERL"}) {
my $r = Apache->request;
if(defined($r)) {
$r->custom_response(404, $session{page}{url} );
$r->status(404);
}
} else {
$session{header}{status} = '404';
}
} }
} else { } else {
$pageId = $session{setting}{defaultPage}; $pageId = $session{setting}{defaultPage};