summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Interface/Web/Handler.pm
diff options
context:
space:
mode:
Diffstat (limited to 'rt/lib/RT/Interface/Web/Handler.pm')
-rw-r--r--rt/lib/RT/Interface/Web/Handler.pm81
1 files changed, 19 insertions, 62 deletions
diff --git a/rt/lib/RT/Interface/Web/Handler.pm b/rt/lib/RT/Interface/Web/Handler.pm
index ce9222586..7ee654e7c 100644
--- a/rt/lib/RT/Interface/Web/Handler.pm
+++ b/rt/lib/RT/Interface/Web/Handler.pm
@@ -1,8 +1,8 @@
-# BEGIN BPS TAGGED BLOCK {{{
+# {{{ BEGIN BPS TAGGED BLOCK
#
# COPYRIGHT:
#
-# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC
# <jesse@bestpractical.com>
#
# (Except where explicitly superseded by other copyright notices)
@@ -42,24 +42,9 @@
# works based on those contributions, and sublicense and distribute
# those contributions and any derivatives thereof.
#
-# END BPS TAGGED BLOCK }}}
-
+# }}} END BPS TAGGED BLOCK
package RT::Interface::Web::Handler;
-use CGI qw/-private_tempfiles/;
-use MIME::Entity;
-use Text::Wrapper;
-use CGI::Cookie;
-use Time::ParseDate;
-use Time::HiRes;
-use HTML::Entities;
-use HTML::Scrubber;
-use Text::Quoted;
-use RT::Interface::Web::Handler;
-use File::Path qw( rmtree );
-use File::Glob qw( bsd_glob );
-use File::Spec::Unix;
-
sub DefaultHandlerArgs { (
comp_root => [
[ local => $RT::MasonLocalComponentRoot ],
@@ -68,10 +53,7 @@ sub DefaultHandlerArgs { (
default_escape_flags => 'h',
data_dir => "$RT::MasonDataDir",
allow_globals => [qw(%session)],
- # Turn off static source if we're in developer mode.
- static_source => ($RT::DevelMode ? '0' : '1'),
- use_object_files => ($RT::DevelMode ? '0' : '1'),
- autoflush => 0
+ autoflush => 1
) };
# {{{ sub new
@@ -87,17 +69,19 @@ sub new {
my $class = shift;
$class->InitSessionDir;
- if ( $mod_perl::VERSION && $mod_perl::VERSION >= 1.9908 ) {
-# require Apache::RequestUtil;
-# no warnings 'redefine';
-# my $sub = *Apache::request{CODE};
-# *Apache::request = sub {
-# my $r;
-# eval { $r = $sub->('Apache'); };
-#
-# # warn $@ if $@;
-# return $r;
-# };
+ if ($MasonX::Apache2Handler::VERSION) {
+ goto &NewApache2Handler;
+ }
+ elsif ($mod_perl::VERSION and $mod_perl::VERSION >= 1.9908) {
+ require Apache::RequestUtil;
+ no warnings 'redefine';
+ my $sub = *Apache::request{CODE};
+ *Apache::request = sub {
+ my $r;
+ eval { $r = $sub->('Apache'); };
+ # warn $@ if $@;
+ return $r;
+ };
goto &NewApacheHandler;
}
elsif ($CGI::MOD_PERL) {
@@ -112,14 +96,14 @@ sub InitSessionDir {
# Activate the following if running httpd as root (the normal case).
# Resets ownership of all files created by Mason at startup.
# Note that mysql uses DB for sessions, so there's no need to do this.
- unless ( $RT::DatabaseType =~ /(?:mysql|Pg)/ ) {
+ unless ( $RT::DatabaseType =~ /(mysql|Pg)/ ) {
# Clean up our umask to protect session files
umask(0077);
if ($CGI::MOD_PERL) {
chown( Apache->server->uid, Apache->server->gid,
- $RT::MasonSessionDir )
+ [$RT::MasonSessionDir] )
if Apache->server->can('uid');
}
@@ -186,36 +170,9 @@ sub NewHandler {
);
$handler->interp->set_escape( h => \&RT::Interface::Web::EscapeUTF8 );
- $handler->interp->set_escape( u => \&RT::Interface::Web::EscapeURI );
return($handler);
}
-=head2 CleanupRequest
-
-Rollback any uncommitted transaction.
-Flush the ACL cache
-Flush the searchbuilder query cache
-
-=cut
-
-sub CleanupRequest {
-
- if ( $RT::Handle->TransactionDepth ) {
- $RT::Handle->ForceRollback;
- $RT::Logger->crit(
- "Transaction not committed. Usually indicates a software fault."
- . "Data loss may have occurred" );
- }
-
- # Clean out the ACL cache. the performance impact should be marginal.
- # Consistency is imprived, too.
- RT::Principal->InvalidateACLCache();
- DBIx::SearchBuilder::Record::Cachable->FlushCache
- if ( $RT::WebFlushDbCacheEveryRequest
- and UNIVERSAL::can(
- 'DBIx::SearchBuilder::Record::Cachable' => 'FlushCache' ) );
-
-}
# }}}
1;