Add field and accessor in portal for plugin session info (#2609)
This commit is contained in:
parent
65c92f123e
commit
44cb0444fe
|
@ -704,7 +704,13 @@ sub mkSessionArray {
|
||||||
|
|
||||||
return "" unless ( ref $sessions eq "ARRAY" and @$sessions );
|
return "" unless ( ref $sessions eq "ARRAY" and @$sessions );
|
||||||
|
|
||||||
my @fields = sort keys %{ $self->conf->{sessionDataToRemember} };
|
# Merge user configuration with plugin self-configuration
|
||||||
|
my %rememberedData = %{ $self->pluginSessionDataToRemember };
|
||||||
|
@rememberedData{ keys %{ $self->conf->{sessionDataToRemember} } } =
|
||||||
|
values %{ $self->conf->{sessionDataToRemember} };
|
||||||
|
|
||||||
|
my @fields = sort( keys %rememberedData );
|
||||||
|
|
||||||
return $self->loadTemplate(
|
return $self->loadTemplate(
|
||||||
$req,
|
$req,
|
||||||
'sessionArray',
|
'sessionArray',
|
||||||
|
@ -712,11 +718,8 @@ sub mkSessionArray {
|
||||||
title => $title,
|
title => $title,
|
||||||
displayUser => $displayUser,
|
displayUser => $displayUser,
|
||||||
displayError => $displayError,
|
displayError => $displayError,
|
||||||
fields => [
|
fields => [ map { { name => $rememberedData{$_} } } @fields ],
|
||||||
map { { name => $self->conf->{sessionDataToRemember}->{$_} } }
|
sessions => [
|
||||||
@fields
|
|
||||||
],
|
|
||||||
sessions => [
|
|
||||||
map {
|
map {
|
||||||
my $session = $_;
|
my $session = $_;
|
||||||
{
|
{
|
||||||
|
|
|
@ -94,6 +94,10 @@ has cors => ( is => 'rw' );
|
||||||
# Cookie SameSite value
|
# Cookie SameSite value
|
||||||
has cookieSameSite => ( is => 'rw' );
|
has cookieSameSite => ( is => 'rw' );
|
||||||
|
|
||||||
|
# Plugins may declare the session data they want to store in login history here
|
||||||
|
has pluginSessionDataToRemember =>
|
||||||
|
( is => 'rw', isa => "HashRef", default => sub { {} } );
|
||||||
|
|
||||||
# INITIALIZATION
|
# INITIALIZATION
|
||||||
|
|
||||||
sub init {
|
sub init {
|
||||||
|
@ -229,6 +233,9 @@ sub reloadConf {
|
||||||
$self->spRules( {} );
|
$self->spRules( {} );
|
||||||
$self->hook( {} );
|
$self->hook( {} );
|
||||||
|
|
||||||
|
# Plugin history fields
|
||||||
|
$self->pluginSessionDataToRemember( {} );
|
||||||
|
|
||||||
# Load conf in portal object
|
# Load conf in portal object
|
||||||
foreach my $key ( keys %$conf ) {
|
foreach my $key ( keys %$conf ) {
|
||||||
$self->{conf}->{$key} ||= $conf->{$key};
|
$self->{conf}->{$key} ||= $conf->{$key};
|
||||||
|
|
|
@ -161,6 +161,15 @@ sub canUpdateSfa {
|
||||||
return $msg;
|
return $msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub addSessionDataToRemember {
|
||||||
|
my ( $self, $newData ) = @_;
|
||||||
|
for my $sessionAttr ( keys %{ $newData || {} } ) {
|
||||||
|
$self->p->pluginSessionDataToRemember->{$sessionAttr} =
|
||||||
|
$newData->{$sessionAttr};
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
__END__
|
__END__
|
||||||
|
|
||||||
|
|
|
@ -1120,9 +1120,11 @@ sub _sumUpSession {
|
||||||
$withoutUser
|
$withoutUser
|
||||||
? {}
|
? {}
|
||||||
: { user => $session->{ $self->conf->{whatToTrace} } };
|
: { user => $session->{ $self->conf->{whatToTrace} } };
|
||||||
$res->{$_} = $session->{$_}
|
$res->{$_} = $session->{$_} foreach (
|
||||||
foreach ( "_utime", "ipAddr",
|
"_utime", "ipAddr",
|
||||||
keys %{ $self->conf->{sessionDataToRemember} } );
|
keys %{ $self->conf->{sessionDataToRemember} },
|
||||||
|
keys %{ $self->pluginSessionDataToRemember }
|
||||||
|
);
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user