more session fixes.

This commit is contained in:
Matthew Wilson 2006-01-18 06:26:40 +00:00
parent 8839c094c5
commit 8f12dae29c
4 changed files with 11 additions and 11 deletions

View file

@ -40,10 +40,10 @@ sub handler {
} }
my $uploads = $config->get("uploadsURL"); my $uploads = $config->get("uploadsURL");
if ($r->uri =~ m/^$uploads/) { if ($r->uri =~ m/^$uploads/) {
$r->set_handlers(PerlAccessHandler => \&uploadsHandler); $r->push_handlers(PerlAccessHandler => \&uploadsHandler);
} else { } else {
$r->set_handlers(PerlResponseHandler => \&contentHandler); $r->push_handlers(PerlResponseHandler => \&contentHandler);
$r->set_handlers(PerlTransHandler => sub { return Apache2::Const::OK }); $r->push_handlers(PerlTransHandler => sub { return Apache2::Const::OK });
} }
return Apache2::Const::DECLINED; return Apache2::Const::DECLINED;
} }
@ -59,7 +59,7 @@ sub contentHandler {
my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$r->dir_config('WebguiConfig'),$r, $s); my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$r->dir_config('WebguiConfig'),$r, $s);
if ($session->env->get("HTTP_X_MOZ") eq "prefetch") { # browser prefetch is a bad thing 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->setStatus("403","We don't allow prefetch, because it increases bandwidth, hurts stats, and can break web sites.");
$r->print($session->http->getHeader); $session->http->getHeader;
} elsif ($session->setting->get("specialState") eq "upgrading") { } elsif ($session->setting->get("specialState") eq "upgrading") {
upgrading($session); upgrading($session);
} elsif ($session->setting->get("specialState") eq "init") { } elsif ($session->setting->get("specialState") eq "init") {

View file

@ -359,7 +359,7 @@ sub open {
my $self = {_config=>$config, _server=>$server}; my $self = {_config=>$config, _server=>$server};
bless $self , $class; bless $self , $class;
$self->{_request} = Apache2::Request->new($request, POST_MAX => 1024 * $self->setting->get("maxAttachmentSize")) if (defined $request); $self->{_request} = Apache2::Request->new($request, POST_MAX => 1024 * $self->setting->get("maxAttachmentSize")) if (defined $request);
my $sessionId = shift || $self->http->getCookies->{"wgSession"}; my $sessionId = shift || $self->http->getCookies->{"wgSession"} || $self->id->generate;
$self->{_var} = WebGUI::Session::Var->new($self,$sessionId); $self->{_var} = WebGUI::Session::Var->new($self,$sessionId);
return $self; return $self;
} }
@ -375,7 +375,7 @@ Returns a WebGUI::Session::Os object.
sub os { sub os {
my $self = shift; my $self = shift;
unless (exists $self->{_os}) { unless (exists $self->{_os}) {
$self->{_os} = WebGUI::Session::Os->new; $self->{_os} = WebGUI::Session::Os->new();
} }
return $self->{_os}; return $self->{_os};
} }

View file

@ -168,11 +168,11 @@ sub new {
$self->{_var} = $session->db->quickHashRef("select * from userSession where sessionId=".$session->db->quote($sessionId)); $self->{_var} = $session->db->quickHashRef("select * from userSession where sessionId=".$session->db->quote($sessionId));
if ($self->{_var}{expires} && $self->{_var}{expires} < $session->datetime->time()) { if ($self->{_var}{expires} && $self->{_var}{expires} < $session->datetime->time()) {
$self->end; $self->end;
} } elsif ($self->{_var}{sessionId} ne "") {
if ($self->{_var}{sessionId} ne "") {
$self->{_var}{lastPageView} = $session->datetime->time(); $self->{_var}{lastPageView} = $session->datetime->time();
$self->{_var}{lastIP} = $session->env("REMOTE_ADDR"); $self->{_var}{lastIP} = $session->env("REMOTE_ADDR");
$self->{_var}{expires} = $session->datetime->time() + $session->setting->get("sessionTimeout"); $self->{_var}{expires} = $session->datetime->time() + $session->setting->get("sessionTimeout");
$self->session->{_sessionId} = $self->{_var}{sessionId};
$session->db->setRow("userSession","sessionId",$self->{_var}); $session->db->setRow("userSession","sessionId",$self->{_var});
} else { } else {
$self->start(1,$sessionId); $self->start(1,$sessionId);

View file

@ -14,14 +14,14 @@ use lib '../../lib';
use Getopt::Long; use Getopt::Long;
use WebGUI::Session; use WebGUI::Session;
# ---- END DO NOT EDIT ---- # ---- END DO NOT EDIT ----
use Test::More tests => 10; # increment this value for each test you create use Test::More tests => 14; # increment this value for each test you create
my $session = initialize(); # this line is required my $session = initialize(); # this line is required
# put your tests here # put your tests here
my $scratch = $session->Scratch; my $scratch = $session->scratch;
my $maxCount = 10; my $maxCount = 14;
$scratch->deleteAll(); $scratch->deleteAll();