diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt index 85ebe94f6..aa77fa660 100644 --- a/docs/changelog/6.x.x.txt +++ b/docs/changelog/6.x.x.txt @@ -32,7 +32,11 @@ - fix [ 1410127 ] User profile fields do not display value \'0\' - fix [ 1427600 ] Prevent Proxy caching on - URL issue - fix [ 1413032 ] AdminBar text unreadable in some cases. w/ fix + - fix [ 1426790 ] Matrix isLoggedIn tmpl var not exposed to all view + methods + - fix [ 1426170 ] passthruUrls ignores single value - fix [ 1428117 ] Uploading files with 0 size + - fix [ 1411884 ] DirectoryIndex doesn't work with passthruUrls in v6.8.5 6.8.5 - fix [ 1396957 ] Insufficient privileges check on the DataForm diff --git a/lib/WebGUI.pm b/lib/WebGUI.pm index 3dce78e16..5c5894a7d 100644 --- a/lib/WebGUI.pm +++ b/lib/WebGUI.pm @@ -27,7 +27,7 @@ use WebGUI::PassiveProfiling; use Apache2::Request; use Apache2::RequestRec (); use Apache2::RequestIO (); -use Apache2::Const -compile => qw(OK DECLINED NOT_FOUND); +use Apache2::Const -compile => qw(OK DECLINED NOT_FOUND DIR_MAGIC_TYPE); use Apache2::ServerUtil (); #------------------------------------------------------------------- @@ -35,6 +35,7 @@ sub handler { my $r = shift; my $s = Apache2::ServerUtil->server; my $config = WebGUI::Config->new($s->dir_config('WebguiRoot'),$r->dir_config('WebguiConfig')); + $r->set_handlers(PerlFixupHandler => \&fixupHandler) if (defined $config->get("passthruUrls")); foreach my $url ($config->get("extrasURL"), @{$config->get("passthruUrls")}) { return Apache2::Const::DECLINED if ($r->uri =~ m/^$url/); } @@ -83,6 +84,27 @@ sub contentHandler { return Apache2::Const::OK; } +#------------------------------------------------------------------- +sub fixupHandler { + +## This method is here to allow proper handling of DirectoryIndexes +# when someone is using the passthruUrls feature. + + + my $r = shift; + + if ($r->handler eq 'perl-script' && # Handler is Perl + -d $r->filename && # Filename requested is a directory + $r->is_initial_req) # and this is the initial request + { + $r->handler(Apache2::Const::DIR_MAGIC_TYPE); # Hand off to mod_dir + + return Apache2::Const::OK; + } + + return Apache2::Const::DECLINED; # just pass it on +} + #------------------------------------------------------------------- sub page { my $session = shift; diff --git a/lib/WebGUI/Asset/Wobject/Matrix.pm b/lib/WebGUI/Asset/Wobject/Matrix.pm index a479d8c68..c4bf0f735 100644 --- a/lib/WebGUI/Asset/Wobject/Matrix.pm +++ b/lib/WebGUI/Asset/Wobject/Matrix.pm @@ -252,6 +252,7 @@ sub www_compare { $var{isTooMany} = (scalar(@cmsList)>$max); $var{isTooFew} = (scalar(@cmsList)<2); $var{'compare.form'} = $self->getCompareForm(@cmsList); + $var{'isLoggedIn'} = ($self->session->user->get("userId") ne "1"); if ($var{isTooMany} || $var{isTooFew}) { return $self->processStyle($self->processTemplate(\%var,$self->get("compareTemplateId"))); } @@ -831,6 +832,7 @@ sub www_search { $var{isTooFew} = ($count<2); } } + $var{'isLoggedIn'} = ($self->session->user->get("userId") ne "1"); $var{'compare.form'} = $self->getCompareForm(@list); $var{'form.header'} = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl}) .WebGUI::Form::hidden($self->session,{ @@ -989,6 +991,7 @@ sub www_viewDetail { my $listing = $self->session->db->getRow("Matrix_listing","listingId",$listingId); my $forum = WebGUI::Asset::Wobject::Collaboration->new($self->session, $listing->{forumId}); $var{"discussion"} = $forum->view; + $var{'isLoggedIn'} = ($self->session->user->get("userId") ne "1"); if ($self->session->form->process("do") eq "sendEmail") { if ($self->session->form->process("body") ne "") { my $u = WebGUI::User->new($self->session, $listing->{maintainerId});