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: 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 code efficiency changes.
- fix: Two cookies and incorrect Last-Modified date in HTTP header
7.1.3
- 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.
my $request = Apache2::Request->new($r);
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
$session->http->setStatus("403","We don't allow prefetch, because it increases bandwidth, hurts stats, and can break web sites.");
$session->http->sendHeader;
} elsif ($session->setting->get("specialState") eq "upgrading") {
$http->setStatus("403","We don't allow prefetch, because it increases bandwidth, hurts stats, and can break web sites.");
$http->sendHeader;
} elsif ($setting->get("specialState") eq "upgrading") {
upgrading($session);
} else {
my $output = processOperations($session);
if ($output ne "") {
my $out = processOperations($session);
if ($out ne "") {
# do nothing because we have operation output to display
$output = undef if ($output eq "chunked");
} elsif ($session->setting->get("specialState") eq "init") {
$output = setup($session);
} elsif ($session->errorHandler->canShowPerformanceIndicators) {
$out = undef if ($out eq "chunked");
} elsif ($setting->get("specialState") eq "init") {
$out = setup($session);
} elsif ($errorHandler->canShowPerformanceIndicators) {
my $t = [Time::HiRes::gettimeofday()];
$output = page($session);
$out = page($session);
$t = Time::HiRes::tv_interval($t) ;
if ($output =~ /<\/title>/) {
$output =~ s/<\/title>/ : ${t} seconds<\/title>/i;
if ($out =~ /<\/title>/) {
$out =~ s/<\/title>/ : ${t} seconds<\/title>/i;
} else {
# Kludge.
my $mimeType = $session->http->getMimeType();
my $mimeType = $http->getMimeType();
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') {
$session->output->print("\nPage generated in $t seconds.\n");
$output->print("\nPage generated in $t seconds.\n");
} else {
# Don't apply to content when we don't know how
# to modify it semi-safely.
}
}
} 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 = $session->http->getStreamedFile();
if ((defined $filename) && ($session->config->get("enableStreamingUploads") eq "1")) {
my $filename = $http->getStreamedFile();
if ((defined $filename) && ($config->get("enableStreamingUploads") eq "1")) {
my $ct = guess_media_type($filename);
my $oldContentType = $r->content_type($ct);
if ($r->sendfile($filename) ) {
@ -137,11 +137,11 @@ sub contentHandler {
$r->content_type($oldContentType);
}
}
$session->http->sendHeader();
unless ($session->http->isRedirect()) {
$session->output->print($output);
if ($session->errorHandler->canShowDebug()) {
$session->output->print($session->errorHandler->showDebug(),1);
$http->sendHeader();
unless ($http->isRedirect()) {
$output->print($out);
if ($errorHandler->canShowDebug()) {
$output->print($errorHandler->showDebug(),1);
}
}
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 {
my $self = shift;
return $self->session->privilege->noAccess() unless $self->canView;
if ($self->session->var->isAdminOn && $self->get("state") =~ /^trash/) { # show em trash
$self->session->http->setRedirect($self->getUrl("func=manageTrash"));
my ($var, $http) = $self->session->quick(qw(var http));
if ($var->isAdminOn && $self->get("state") =~ /^trash/) { # show em trash
$http->setRedirect($self->getUrl("func=manageTrash"));
return "redirect";
} elsif ($self->session->var->isAdminOn && $self->get("state") =~ /^clipboard/) { # show em clipboard
$self->session->http->setRedirect($self->getUrl("func=manageClipboard"));
} elsif ($var->isAdminOn && $self->get("state") =~ /^clipboard/) { # show em clipboard
$http->setRedirect($self->getUrl("func=manageClipboard"));
return "redirect";
} 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);
$self->session->asset($notFound);
return $notFound->www_view;
}
$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;
}

View file

@ -249,9 +249,13 @@ sub sendHeader {
return undef if ($self->{_http}{noHeader});
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;
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);
my %params;