summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Interface/Web
diff options
context:
space:
mode:
Diffstat (limited to 'rt/lib/RT/Interface/Web')
-rw-r--r--rt/lib/RT/Interface/Web/Handler.pm6
-rwxr-xr-xrt/lib/RT/Interface/Web/QueryBuilder/Tree.pm6
-rw-r--r--rt/lib/RT/Interface/Web/Request.pm4
-rw-r--r--rt/lib/RT/Interface/Web/Session.pm4
4 files changed, 15 insertions, 5 deletions
diff --git a/rt/lib/RT/Interface/Web/Handler.pm b/rt/lib/RT/Interface/Web/Handler.pm
index 8d17921cb..6a0660670 100644
--- a/rt/lib/RT/Interface/Web/Handler.pm
+++ b/rt/lib/RT/Interface/Web/Handler.pm
@@ -217,6 +217,12 @@ sub CleanupRequest {
RT::Crypt::GnuPG::UseKeyForEncryption();
RT::Crypt::GnuPG::UseKeyForSigning( undef );
}
+
+ %RT::Ticket::MERGE_CACHE = ( effective => {}, merged => {} );
+
+ # Explicitly remove any tmpfiles that GPG opened, and close their
+ # filehandles.
+ File::Temp::cleanup;
}
# }}}
diff --git a/rt/lib/RT/Interface/Web/QueryBuilder/Tree.pm b/rt/lib/RT/Interface/Web/QueryBuilder/Tree.pm
index 574ead465..e672d8e4c 100755
--- a/rt/lib/RT/Interface/Web/QueryBuilder/Tree.pm
+++ b/rt/lib/RT/Interface/Web/QueryBuilder/Tree.pm
@@ -268,7 +268,11 @@ sub ParseSQL {
}
$value =~ s/'/\\'/g;
- $value = "'$value'" if $value =~ /[^0-9]/;
+ if ( lc $op eq 'is' || lc $op eq 'is not' ) {
+ $value = 'NULL'; # just fix possible mistakes here
+ } elsif ( $value !~ /^[+-]?[0-9]+$/ ) {
+ $value = "'$value'";
+ }
$key = "'$key'" if $key =~ /^CF./;
my $clause = { Key => $key, Op => $op, Value => $value };
diff --git a/rt/lib/RT/Interface/Web/Request.pm b/rt/lib/RT/Interface/Web/Request.pm
index e1794640d..ba626a091 100644
--- a/rt/lib/RT/Interface/Web/Request.pm
+++ b/rt/lib/RT/Interface/Web/Request.pm
@@ -160,11 +160,11 @@ sub callback {
my %seen;
@$callbacks = (
- sort grep defined && length,
+ grep defined && length,
# Skip backup files, files without a leading package name,
# and files we've already seen
grep !$seen{$_}++ && !m{/\.} && !m{~$} && m{^/Callbacks/[^/]+\Q$page/$name\E$},
- map $self->interp->resolver->glob_path($path, $_),
+ map { sort $self->interp->resolver->glob_path($path, $_) }
@roots
);
foreach my $comp (keys %seen) {
diff --git a/rt/lib/RT/Interface/Web/Session.pm b/rt/lib/RT/Interface/Web/Session.pm
index 4998c34f9..1e0e6d5f0 100644
--- a/rt/lib/RT/Interface/Web/Session.pm
+++ b/rt/lib/RT/Interface/Web/Session.pm
@@ -111,8 +111,8 @@ new session objects.
=cut
sub Attributes {
-
- return $_[0]->Backends->{RT->Config->Get('DatabaseType')} ? {
+ my $class = $_[0]->Class;
+ return !$class->isa('Apache::Session::File') ? {
Handle => $RT::Handle->dbh,
LockHandle => $RT::Handle->dbh,
Transaction => 1,