summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Interface/Web/Session.pm
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2015-07-10 16:38:28 -0700
committerMark Wells <mark@freeside.biz>2015-07-10 16:38:28 -0700
commit0ed195595b5c7ea404c8848d9d1881ada4214489 (patch)
tree6d6f3fe6e980cd123ff7a648d27fb9eb6b16ab13 /rt/lib/RT/Interface/Web/Session.pm
parentaf05c3dda381122e0a45f72dbc0b4e9492f13fe7 (diff)
parentdf4a68099abfa067014f36f92874fccefdea662e (diff)
Merge branch 'master' of git.freeside.biz:/home/git/freeside
Diffstat (limited to 'rt/lib/RT/Interface/Web/Session.pm')
-rw-r--r--rt/lib/RT/Interface/Web/Session.pm30
1 files changed, 21 insertions, 9 deletions
diff --git a/rt/lib/RT/Interface/Web/Session.pm b/rt/lib/RT/Interface/Web/Session.pm
index d854130b6..c4cc93080 100644
--- a/rt/lib/RT/Interface/Web/Session.pm
+++ b/rt/lib/RT/Interface/Web/Session.pm
@@ -84,8 +84,7 @@ sub Class {
my $class = RT->Config->Get('WebSessionClass')
|| $self->Backends->{RT->Config->Get('DatabaseType')}
|| 'Apache::Session::File';
- eval "require $class";
- die $@ if $@;
+ $class->require or die "Can't load $class: $@";
return $class;
}
@@ -98,8 +97,9 @@ sessions class names as values.
sub Backends {
return {
- mysql => 'Apache::Session::MySQL',
- Pg => 'Apache::Session::Postgres',
+ mysql => 'Apache::Session::MySQL',
+ Pg => 'Apache::Session::Postgres',
+ Oracle => 'Apache::Session::Oracle',
};
}
@@ -112,15 +112,27 @@ new session objects.
sub Attributes {
my $class = $_[0]->Class;
- return !$class->isa('Apache::Session::File') ? {
- Handle => $RT::Handle->dbh,
- LockHandle => $RT::Handle->dbh,
- Transaction => 1,
- } : {
+ my $res;
+ if ( my %props = RT->Config->Get('WebSessionProperties') ) {
+ $res = \%props;
+ }
+ elsif ( $class->isa('Apache::Session::File') ) {
+ $res = {
Directory => $RT::MasonSessionDir,
LockDirectory => $RT::MasonSessionDir,
Transaction => 1,
};
+ }
+ else {
+ $res = {
+ Handle => $RT::Handle->dbh,
+ LockHandle => $RT::Handle->dbh,
+ Transaction => 1,
+ };
+ }
+ $res->{LongReadLen} = RT->Config->Get('MaxAttachmentSize')
+ if $class->isa('Apache::Session::Oracle');
+ return $res;
}
=head3 Ids