X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FAuth%2FSessionValue.pm;h=0950a46b95c1ca217472110cd2a2828908e4e5e4;hb=afd5395bfad1a84a590d567f8cb2d4e4967b16e3;hp=cb1c7e386de006cb377dc70bda6414321b0a750e;hpb=2a201b355ff26058b8be59a92ce9c025cdf3a3bf;p=kivitendo-erp.git diff --git a/SL/Auth/SessionValue.pm b/SL/Auth/SessionValue.pm index cb1c7e386..0950a46b9 100644 --- a/SL/Auth/SessionValue.pm +++ b/SL/Auth/SessionValue.pm @@ -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}; @@ -37,14 +37,16 @@ sub get { 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 = ?)|; @@ -57,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; @@ -70,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 };