Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / SL / Auth / SessionValue.pm
index cfaa624..0950a46 100644 (file)
@@ -7,16 +7,16 @@ use strict;
 use SL::Locale::String ();
 
 use Scalar::Util qw(weaken);
-use YAML;
 
 use SL::DBUtils;
+use SL::YAML;
 
 sub new {
   my ($class, %params) = @_;
 
   my $self = bless {}, $class;
 
-  map { $self->{$_} = $params{$_} } qw(auth key value auto_restore);
+  map { $self->{$_} = $params{$_} } qw(auth key value auto_restore modified);
 
   $self->{fetched} =                  exists $params{value};
   $self->{parsed}  = !$params{raw} && exists $params{value};
@@ -39,13 +39,14 @@ sub get_dumped {
   my ($self) = @_;
   no warnings 'once';
   local $YAML::Stringify = 1;
-  return YAML::Dump($self->get);
+  return SL::YAML::Dump($self->get);
 }
 
 sub _fetch {
   my ($self) = @_;
 
   return $self if $self->{fetched};
+  return $self if !$self->{auth}->session_tables_present;
 
   my $dbh          = $self->{auth}->dbconnect;
   my $query        = qq|SELECT sess_value FROM auth.session_content WHERE (session_id = ?) AND (sess_key = ?)|;
@@ -58,7 +59,7 @@ sub _fetch {
 sub _parse {
   my ($self) = @_;
 
-  $self->{value}  = YAML::Load($self->{value}) unless $self->{parsed};
+  $self->{value}  = SL::YAML::Load($self->{value}) unless $self->{parsed};
   $self->{parsed} = 1;
 
   return $self;
@@ -71,7 +72,7 @@ sub _load_value {
 
   my %params = ( simple => 1 );
   eval {
-    my $data = YAML::Load($value);
+    my $data = SL::YAML::Load($value);
 
     if (ref $data eq 'HASH') {
       map { $params{$_} = $data->{$_} } keys %{ $data };