session api updates

This commit is contained in:
JT Smith 2006-01-11 03:45:58 +00:00
parent c74c1bdcbc
commit 16de66517c
2 changed files with 18 additions and 32 deletions

View file

@ -19,17 +19,10 @@ use WebGUI::Affiliate;
use WebGUI::Asset; use WebGUI::Asset;
use WebGUI::Cache; use WebGUI::Cache;
use WebGUI::Config; use WebGUI::Config;
use WebGUI::ErrorHandler;
use WebGUI::Grouping;
use WebGUI::HTTP;
use WebGUI::International; use WebGUI::International;
use WebGUI::Operation; use WebGUI::Operation;
use WebGUI::Privilege; use WebGUI::Privilege;
use WebGUI::Session; use WebGUI::Session;
use WebGUI::Setting;
use WebGUI::SQL;
use WebGUI::Style;
use WebGUI::URL;
use WebGUI::Utility; use WebGUI::Utility;
use WebGUI::PassiveProfiling; use WebGUI::PassiveProfiling;
use Apache2::Request; use Apache2::Request;
@ -74,9 +67,9 @@ sub contentHandler {
$session->http->setStatus("403","We don't allow prefetch, because it increases bandwidth, hurts stats, and can break web sites."); $session->http->setStatus("403","We don't allow prefetch, because it increases bandwidth, hurts stats, and can break web sites.");
$r->print($session->http->getHeader); $r->print($session->http->getHeader);
} elsif ($session->setting->get("specialState") eq "upgrading") { } elsif ($session->setting->get("specialState") eq "upgrading") {
upgrading($r); upgrading($session);
} elsif ($session->setting->get("specialState") eq "init") { } elsif ($session->setting->get("specialState") eq "init") {
$r->print(setup()); setup($session);
} else { } else {
my $output = ""; my $output = "";
if ($session->errorHandler->canShowPerformanceIndicators) { if ($session->errorHandler->canShowPerformanceIndicators) {
@ -99,7 +92,7 @@ sub contentHandler {
sub page { sub page {
my $session = shift; my $session = shift;
my $assetUrl = shift; my $assetUrl = shift;
my $output = processOperations(); my $output = processOperations($session);
if ($output eq "") { if ($output eq "") {
my $asset = eval{WebGUI::Asset->newByUrl($session,$assetUrl,$session{form}{revision})}; my $asset = eval{WebGUI::Asset->newByUrl($session,$assetUrl,$session{form}{revision})};
if ($@) { if ($@) {
@ -122,7 +115,7 @@ sub page {
$session->http->setStatus("404","Page Not Found"); $session->http->setStatus("404","Page Not Found");
my $notFound = WebGUI::Asset->getNotFound($session); my $notFound = WebGUI::Asset->getNotFound($session);
if (defined $notFound) { if (defined $notFound) {
$output = tryAssetMethod($notFound,'view'); $output = tryAssetMethod($session,$notFound,'view');
} else { } else {
$session->errorHandler->error("The notFound page failed to be created!"); $session->errorHandler->error("The notFound page failed to be created!");
$output = "An error was encountered while processing your request."; $output = "An error was encountered while processing your request.";
@ -135,15 +128,16 @@ sub page {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub processOperations { sub processOperations {
my $session = shift;
my ($cmd, $output); my ($cmd, $output);
my $op = $session{form}{op}; my $op = $session{form}{op};
my $opNumber = shift || 1; my $opNumber = shift || 1;
if ($op) { if ($op) {
$output = WebGUI::Operation::execute($op); $output = WebGUI::Operation::execute($session,$op);
} }
$opNumber++; $opNumber++;
if ($output eq "" && exists $session{form}{"op".$opNumber}) { if ($output eq "" && exists $session{form}{"op".$opNumber}) {
my $urlString = WebGUI::URL::unescape($session{form}{"op".$opNumber}); my $urlString = $session->url->unescape($session->form->get("op".$opNumber));
my @pairs = split(/\;/,$urlString); my @pairs = split(/\;/,$urlString);
my %form; my %form;
foreach my $pair (@pairs) { foreach my $pair (@pairs) {
@ -151,7 +145,7 @@ sub processOperations {
$form{$param[0]} = $param[1]; $form{$param[0]} = $param[1];
} }
$session{form} = \%form; $session{form} = \%form;
$output = processOperations($opNumber); $output = processOperations($session,$opNumber);
} }
return $output; return $output;
} }
@ -159,9 +153,9 @@ sub processOperations {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub setup { sub setup {
my $session = shift;
require WebGUI::Operation::WebGUI; require WebGUI::Operation::WebGUI;
my $output = WebGUI::Operation::WebGUI::www_setup(); $session->request->print(WebGUI::Operation::WebGUI::www_setup($session));
return WebGUI::HTTP::getHeader().$output;
} }
@ -170,7 +164,7 @@ sub tryAssetMethod {
my $session = shift; my $session = shift;
my $asset = shift; my $asset = shift;
my $method = shift; my $method = shift;
$session{asset} = $asset; $session->asset($asset);
my $methodToTry = "www_".$method; my $methodToTry = "www_".$method;
my $output = eval{$asset->$methodToTry()}; my $output = eval{$asset->$methodToTry()};
if ($@) { if ($@) {
@ -198,16 +192,9 @@ sub uploadsHandler {
my @privs = split("\n",$fileContents); my @privs = split("\n",$fileContents);
unless ($privs[1] eq "7" || $privs[1] eq "1") { unless ($privs[1] eq "7" || $privs[1] eq "1") {
my $s = Apache2::ServerUtil->server; my $s = Apache2::ServerUtil->server;
WebGUI::Session::open($s->dir_config('WebguiRoot'),'modperl',"false"); my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$r->dir_config('WebguiConfig'),$r, $s);
$session{cookie} = APR::Request::Apache2->handle($r)->jar(); my $hasPrivs = ($session->var->get("userId") eq $privs[0] || $session->user->isInGroup($privs[1]) || $session->user->isInGroup($privs[2]));
if ($session{cookie}{wgSession} eq "") { $session->close();
WebGUI::Session::start(1); #setting up a visitor session
} else {
WebGUI::Session::setupSessionVars($session{cookie}{wgSession});
}
$session{req}->user($session{var}{username}) if $session{req};
my $hasPrivs = ($session{var}{userId} eq $privs[0] || WebGUI::Grouping::isInGroup($privs[1]) || WebGUI::Grouping::isInGroup($privs[2]));
WebGUI::Session::close();
if ($hasPrivs) { if ($hasPrivs) {
return $ok; return $ok;
} else { } else {
@ -224,11 +211,11 @@ sub uploadsHandler {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub upgrading { sub upgrading {
my $r = shift; my $session = shift;
$r->print(WebGUI::HTTP::getHeader()); $session->request->print($session->http->getHeader());
open(FILE,"<".$session{config}{webguiRoot}."/docs/maintenance.html"); open(FILE,"<".$session->config->getWebguiRoot."/docs/maintenance.html");
while (<FILE>) { while (<FILE>) {
$r->print($_); $session->request->print($_);
} }
close(FILE); close(FILE);
} }

View file

@ -12,7 +12,6 @@ package WebGUI::Macro::GroupAdd;
use strict; use strict;
use WebGUI::Group; use WebGUI::Group;
use WebGUI::Grouping;
use WebGUI::Asset::Template; use WebGUI::Asset::Template;
=head1 NAME =head1 NAME