diff options
author | Mark Wells <mark@freeside.biz> | 2015-07-10 16:38:28 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2015-07-10 16:38:28 -0700 |
commit | 0ed195595b5c7ea404c8848d9d1881ada4214489 (patch) | |
tree | 6d6f3fe6e980cd123ff7a648d27fb9eb6b16ab13 /rt/lib/RT/Interface/Web/Session.pm | |
parent | af05c3dda381122e0a45f72dbc0b4e9492f13fe7 (diff) | |
parent | df4a68099abfa067014f36f92874fccefdea662e (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.pm | 30 |
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 |