merging 7.1.4 changes

This commit is contained in:
JT Smith 2006-11-03 21:29:57 +00:00
parent acaee576c9
commit 8b20bebc32
4 changed files with 38 additions and 34 deletions

View file

@ -31,6 +31,8 @@
- fix: WebGUI::Text::splitCsv no longer removes trailing empty fields - fix: WebGUI::Text::splitCsv no longer removes trailing empty fields
- fix: Product add-to-group would always try to add a user to a group - fix: Product add-to-group would always try to add a user to a group
- Made many minor changes recommended by Perl::Critic. - Made many minor changes recommended by Perl::Critic.
- Made many minor code efficiency changes.
- fix: Two cookies and incorrect Last-Modified date in HTTP header
7.1.3 7.1.3
- fix: SQLReport now returns error if can't find DatabaseLink - fix: SQLReport now returns error if can't find DatabaseLink

View file

@ -93,42 +93,42 @@ sub contentHandler {
### Open new or existing user session based on user-agent's cookie. ### Open new or existing user session based on user-agent's cookie.
my $request = Apache2::Request->new($r); my $request = Apache2::Request->new($r);
my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$configFile, $request, $s); my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$configFile, $request, $s);
my ($env, $http, $setting, $output, $errorHandler, $config) = $session->quick(qw(env http setting output errorHandler config));
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."); $http->setStatus("403","We don't allow prefetch, because it increases bandwidth, hurts stats, and can break web sites.");
$session->http->sendHeader; $http->sendHeader;
} elsif ($session->setting->get("specialState") eq "upgrading") { } elsif ($setting->get("specialState") eq "upgrading") {
upgrading($session); upgrading($session);
} else { } else {
my $output = processOperations($session); my $out = processOperations($session);
if ($output ne "") { if ($out ne "") {
# do nothing because we have operation output to display # do nothing because we have operation output to display
$output = undef if ($output eq "chunked"); $out = undef if ($out eq "chunked");
} elsif ($session->setting->get("specialState") eq "init") { } elsif ($setting->get("specialState") eq "init") {
$output = setup($session); $out = setup($session);
} elsif ($session->errorHandler->canShowPerformanceIndicators) { } elsif ($errorHandler->canShowPerformanceIndicators) {
my $t = [Time::HiRes::gettimeofday()]; my $t = [Time::HiRes::gettimeofday()];
$output = page($session); $out = page($session);
$t = Time::HiRes::tv_interval($t) ; $t = Time::HiRes::tv_interval($t) ;
if ($output =~ /<\/title>/) { if ($out =~ /<\/title>/) {
$output =~ s/<\/title>/ : ${t} seconds<\/title>/i; $out =~ s/<\/title>/ : ${t} seconds<\/title>/i;
} else { } else {
# Kludge. # Kludge.
my $mimeType = $session->http->getMimeType(); my $mimeType = $http->getMimeType();
if ($mimeType eq 'text/css') { if ($mimeType eq 'text/css') {
$session->output->print("\n/* Page generated in $t seconds. */\n"); $output->print("\n/* Page generated in $t seconds. */\n");
} elsif ($mimeType eq 'text/html') { } elsif ($mimeType eq 'text/html') {
$session->output->print("\nPage generated in $t seconds.\n"); $output->print("\nPage generated in $t seconds.\n");
} else { } else {
# Don't apply to content when we don't know how # Don't apply to content when we don't know how
# to modify it semi-safely. # to modify it semi-safely.
} }
} }
} else { } else {
$output = page($session); $out = page($session);
} }
$session->http->setCookie($session->config->getCookieName,$session->var->getId, $session->config->getCookieTTL, $session->config->get("cookieDomain")) unless $session->var->getId eq $session->http->getCookies->{$session->config->getCookieName}; my $filename = $http->getStreamedFile();
my $filename = $session->http->getStreamedFile(); if ((defined $filename) && ($config->get("enableStreamingUploads") eq "1")) {
if ((defined $filename) && ($session->config->get("enableStreamingUploads") eq "1")) {
my $ct = guess_media_type($filename); my $ct = guess_media_type($filename);
my $oldContentType = $r->content_type($ct); my $oldContentType = $r->content_type($ct);
if ($r->sendfile($filename) ) { if ($r->sendfile($filename) ) {
@ -137,11 +137,11 @@ sub contentHandler {
$r->content_type($oldContentType); $r->content_type($oldContentType);
} }
} }
$session->http->sendHeader(); $http->sendHeader();
unless ($session->http->isRedirect()) { unless ($http->isRedirect()) {
$session->output->print($output); $output->print($out);
if ($session->errorHandler->canShowDebug()) { if ($errorHandler->canShowDebug()) {
$session->output->print($session->errorHandler->showDebug(),1); $output->print($errorHandler->showDebug(),1);
} }
} }
WebGUI::Affiliate::grabReferral($session); # process affiliate tracking request WebGUI::Affiliate::grabReferral($session); # process affiliate tracking request

View file

@ -182,22 +182,20 @@ Returns error messages if a user can't view due to publishing problems, otherwis
sub checkView { sub checkView {
my $self = shift; my $self = shift;
return $self->session->privilege->noAccess() unless $self->canView; return $self->session->privilege->noAccess() unless $self->canView;
if ($self->session->var->isAdminOn && $self->get("state") =~ /^trash/) { # show em trash my ($var, $http) = $self->session->quick(qw(var http));
$self->session->http->setRedirect($self->getUrl("func=manageTrash")); if ($var->isAdminOn && $self->get("state") =~ /^trash/) { # show em trash
$http->setRedirect($self->getUrl("func=manageTrash"));
return "redirect"; return "redirect";
} elsif ($self->session->var->isAdminOn && $self->get("state") =~ /^clipboard/) { # show em clipboard } elsif ($var->isAdminOn && $self->get("state") =~ /^clipboard/) { # show em clipboard
$self->session->http->setRedirect($self->getUrl("func=manageClipboard")); $http->setRedirect($self->getUrl("func=manageClipboard"));
return "redirect"; return "redirect";
} elsif ($self->get("state") ne "published" && $self->get("state") ne "archived") { # tell em it doesn't exist anymore } elsif ($self->get("state") ne "published" && $self->get("state") ne "archived") { # tell em it doesn't exist anymore
$self->session->http->setStatus("410"); $http->setStatus("410");
my $notFound = WebGUI::Asset->getNotFound($self->session); my $notFound = WebGUI::Asset->getNotFound($self->session);
$self->session->asset($notFound); $self->session->asset($notFound);
return $notFound->www_view; return $notFound->www_view;
} }
$self->logView(); $self->logView();
# must find a way to do this next line better
my $cookieName = $self->session->config->getCookieName;
$self->session->http->setCookie($cookieName,$self->session->var->getId, $self->session->config->getCookieTTL, $self->session->config->get("cookieDomain")) unless $self->session->var->getId eq $self->session->http->getCookies->{$cookieName};
return undef; return undef;
} }

View file

@ -249,9 +249,13 @@ sub sendHeader {
return undef if ($self->{_http}{noHeader}); return undef if ($self->{_http}{noHeader});
return $self->_sendMinimalHeader if $self->session->dbNotAvailable; return $self->_sendMinimalHeader if $self->session->dbNotAvailable;
my ($request, $datetime) = $self->session->quick(qw(request datetime)); my ($request, $datetime, $config, $var) = $self->session->quick(qw(request datetime config var));
return undef unless $request; return undef unless $request;
my $userId = $self->session->var->get("userId"); my $userId = $var->get("userId");
# send webgui session cookie
my $cookieName = $config->getCookieName;
$self->setCookie($cookieName,$var->getId, $config->getCookieTTL, $config->get("cookieDomain")) unless $var->getId eq $self->getCookies->{$cookieName};
$self->setNoHeader(1); $self->setNoHeader(1);
my %params; my %params;