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 );
|
||||
|
||||
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(
|
||||
$req,
|
||||
'sessionArray',
|
||||
|
@ -712,11 +718,8 @@ sub mkSessionArray {
|
|||
title => $title,
|
||||
displayUser => $displayUser,
|
||||
displayError => $displayError,
|
||||
fields => [
|
||||
map { { name => $self->conf->{sessionDataToRemember}->{$_} } }
|
||||
@fields
|
||||
],
|
||||
sessions => [
|
||||
fields => [ map { { name => $rememberedData{$_} } } @fields ],
|
||||
sessions => [
|
||||
map {
|
||||
my $session = $_;
|
||||
{
|
||||
|
|
|
@ -94,6 +94,10 @@ has cors => ( is => 'rw' );
|
|||
# Cookie SameSite value
|
||||
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
|
||||
|
||||
sub init {
|
||||
|
@ -229,6 +233,9 @@ sub reloadConf {
|
|||
$self->spRules( {} );
|
||||
$self->hook( {} );
|
||||
|
||||
# Plugin history fields
|
||||
$self->pluginSessionDataToRemember( {} );
|
||||
|
||||
# Load conf in portal object
|
||||
foreach my $key ( keys %$conf ) {
|
||||
$self->{conf}->{$key} ||= $conf->{$key};
|
||||
|
|
|
@ -161,6 +161,15 @@ sub canUpdateSfa {
|
|||
return $msg;
|
||||
}
|
||||
|
||||
sub addSessionDataToRemember {
|
||||
my ( $self, $newData ) = @_;
|
||||
for my $sessionAttr ( keys %{ $newData || {} } ) {
|
||||
$self->p->pluginSessionDataToRemember->{$sessionAttr} =
|
||||
$newData->{$sessionAttr};
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
|
|
|
@ -1120,9 +1120,11 @@ sub _sumUpSession {
|
|||
$withoutUser
|
||||
? {}
|
||||
: { user => $session->{ $self->conf->{whatToTrace} } };
|
||||
$res->{$_} = $session->{$_}
|
||||
foreach ( "_utime", "ipAddr",
|
||||
keys %{ $self->conf->{sessionDataToRemember} } );
|
||||
$res->{$_} = $session->{$_} foreach (
|
||||
"_utime", "ipAddr",
|
||||
keys %{ $self->conf->{sessionDataToRemember} },
|
||||
keys %{ $self->pluginSessionDataToRemember }
|
||||
);
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user