From 0fa7178b00f6dda422d55c3e881fc1e3136c8005 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Mon, 15 May 2006 01:10:06 +0000 Subject: [PATCH] more updates to work with wre demo --- lib/WebGUI.pm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/WebGUI.pm b/lib/WebGUI.pm index a47b478e4..ff601e320 100644 --- a/lib/WebGUI.pm +++ b/lib/WebGUI.pm @@ -54,9 +54,9 @@ sub handler { } my $uploads = $config->get("uploadsURL"); if ($r->uri =~ m/^$uploads/) { - $r->push_handlers(PerlAccessHandler => \&uploadsHandler); + $r->push_handlers(PerlAccessHandler => sub { return uploadsHandler($r, $configFile); } ); } else { - $r->push_handlers(PerlResponseHandler => \&contentHandler); + $r->push_handlers(PerlResponseHandler => sub { return contentHandler($r, $configFile); } ); $r->push_handlers(PerlTransHandler => sub { return Apache2::Const::OK }); } return Apache2::Const::DECLINED; @@ -80,10 +80,11 @@ The Apache2::RequestRec object passed in by Apache's mod_perl. sub contentHandler { ### inherit Apache request. my $r = shift; + my $configFile = shift || $r->dir_config('WebguiConfig'); ### Instantiate the API for this httpd instance. my $s = Apache2::ServerUtil->server; ### Open new or existing user session based on user-agent's cookie. - my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$r->dir_config('WebguiConfig'),$r, $s); + my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$configFile,$r, $s); if ($session->env->get("HTTP_X_MOZ") eq "prefetch") { # browser prefetch is a bad thing $session->http->setStatus("403","We don't allow prefetch, because it increases bandwidth, hurts stats, and can break web sites."); $session->http->sendHeader; @@ -299,6 +300,7 @@ The Apache2::RequestRec object passed in by handler(). sub uploadsHandler { my $r = shift; + my $configFile = shift || $r->dir_config('WebguiConfig'); my $ok = Apache2::Const::OK; my $notfound = Apache2::Const::NOT_FOUND; if (-e $r->filename) { @@ -314,7 +316,7 @@ sub uploadsHandler { my @privs = split("\n",$fileContents); unless ($privs[1] eq "7" || $privs[1] eq "1") { my $s = Apache2::ServerUtil->server; - my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$r->dir_config('WebguiConfig'),$r, $s); + my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$configFile,$r, $s); my $hasPrivs = ($session->var->get("userId") eq $privs[0] || $session->user->isInGroup($privs[1]) || $session->user->isInGroup($privs[2])); $session->close(); if ($hasPrivs) {