projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Testfall: Erzeugnis fertigen aufm Mond, aber Einzelteile im Lager Erde
[kivitendo-erp.git]
/
SL
/
Auth
/
SessionValue.pm
diff --git
a/SL/Auth/SessionValue.pm
b/SL/Auth/SessionValue.pm
index
6bf65b9
..
0950a46
100644
(file)
--- a/
SL/Auth/SessionValue.pm
+++ b/
SL/Auth/SessionValue.pm
@@
-2,17
+2,21
@@
package SL::Auth::SessionValue;
use strict;
use strict;
+# Classes that overload stringification must be known before
+# YAML::Load() is called.
+use SL::Locale::String ();
+
use Scalar::Util qw(weaken);
use Scalar::Util qw(weaken);
-use YAML;
use SL::DBUtils;
use SL::DBUtils;
+use SL::YAML;
sub new {
my ($class, %params) = @_;
my $self = bless {}, $class;
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};
$self->{fetched} = exists $params{value};
$self->{parsed} = !$params{raw} && exists $params{value};
@@
-33,13
+37,16
@@
sub get {
sub get_dumped {
my ($self) = @_;
sub get_dumped {
my ($self) = @_;
- return YAML::Dump($self->get);
+ no warnings 'once';
+ local $YAML::Stringify = 1;
+ return SL::YAML::Dump($self->get);
}
sub _fetch {
my ($self) = @_;
return $self if $self->{fetched};
}
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 = ?)|;
my $dbh = $self->{auth}->dbconnect;
my $query = qq|SELECT sess_value FROM auth.session_content WHERE (session_id = ?) AND (sess_key = ?)|;
@@
-52,7
+59,7
@@
sub _fetch {
sub _parse {
my ($self) = @_;
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;
$self->{parsed} = 1;
return $self;
@@
-65,7
+72,7
@@
sub _load_value {
my %params = ( simple => 1 );
eval {
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 };
if (ref $data eq 'HASH') {
map { $params{$_} = $data->{$_} } keys %{ $data };