diff --git a/lib/WebGUI/Privilege.pm b/lib/WebGUI/Privilege.pm
index 8c3426f8f..840b686fc 100644
--- a/lib/WebGUI/Privilege.pm
+++ b/lib/WebGUI/Privilege.pm
@@ -20,7 +20,15 @@ use WebGUI::URL;
#-------------------------------------------------------------------
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);
$output = '
'.WebGUI::International::get(35).'
';
$output .= WebGUI::International::get(36);
@@ -81,7 +89,15 @@ sub canViewPage {
#-------------------------------------------------------------------
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);
$output = ''.WebGUI::International::get(37).'
';
$output .= WebGUI::International::get(38);
@@ -109,7 +125,15 @@ sub isInGroup {
#-------------------------------------------------------------------
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);
if ($session{user}{userId} <= 1) {
$output = WebGUI::Operation::Account::www_displayAccount();
@@ -123,7 +147,15 @@ sub noAccess {
#-------------------------------------------------------------------
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);
$output = ''.WebGUI::International::get(345).'
';
$output .= WebGUI::International::get(346);
diff --git a/lib/WebGUI/Session.pm b/lib/WebGUI/Session.pm
index a8eb74f59..77ec11957 100644
--- a/lib/WebGUI/Session.pm
+++ b/lib/WebGUI/Session.pm
@@ -44,7 +44,15 @@ sub _getPageInfo {
($pageId) = WebGUI::SQL->quickArray("select pageId from page where urlizedTitle='".$pageName."'",$_[1]);
if ($pageId eq "") {
$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 {
$pageId = $session{setting}{defaultPage};