Putting 4.2.0 on top of 4.0.17
[usit-rt.git] / lib / RT / Interface / Web / Session.pm
index 266f9ed..f2dd603 100644 (file)
@@ -98,8 +98,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 +113,25 @@ 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,
+        };
+    }
+    return $res;
 }
 
 =head3 Ids