Compile macros and groups (#595)

This commit is contained in:
Xavier Guimard 2016-04-03 16:27:19 +00:00
parent 41d487ee1f
commit 80f17a91ea
2 changed files with 23 additions and 4 deletions

View File

@ -181,7 +181,26 @@ sub reloadConf {
}
}
# TODO: compile macros in _macros, groups in _groups
# Compile macros in _macros, groups in _groups
foreach my $type (qw(macros groups)) {
$self->{"_$type"} = {};
if ( $self->conf->{$type} ) {
for my $name ( sort keys %{ $self->conf->{$type} } ) {
my $sub = HANDLER->tsv->{jail}->jail_reval(
"sub{return(" . $self->conf->{$type}->{$name} . ")}" );
if ($sub) {
$self->{"_$type"}->{$name} = $sub;
}
else {
$self->lmLog(
"$type $name returns an error: "
. HANDLER->tsv->{jail}->error,
'error'
);
}
}
}
}
# Load plugins
foreach my $plugin ( $self->enabledPlugins ) {

View File

@ -152,7 +152,7 @@ sub setSessionInfo {
$req->{sessionInfo}->{_url} = $req->datas->{urldc};
# Share sessionInfo with underlying handler (needed for safe jail)
HANDLER->datas($req->{sessionInfo});
HANDLER->datas( $req->{sessionInfo} );
# Call UserDB setSessionInfo
return $self->_userDB->setSessionInfo($req);
@ -163,7 +163,7 @@ sub setSessionInfo {
sub setMacros {
my ( $self, $req ) = @_;
foreach ( sort keys %{ $self->_macros } ) {
$req->{sessionInfo}->{$_} = $self->_macros->{$_}->($req);
$req->{sessionInfo}->{$_} = $self->_macros->{$_}->();
}
PE_OK;
}
@ -202,7 +202,7 @@ sub setPersistentSessionInfo {
sub setLocalGroups {
my ( $self, $req ) = @_;
foreach ( sort keys %{ $self->_groups } ) {
if ( $self->_groups->{$_}->($req) ) {
if ( $self->_groups->{$_}->() ) {
$req->{sessionInfo}->{groups} .=
$self->conf->{multiValuesSeparator} . $_;
$req->{sessionInfo}->{hGroups}->{$_}->{name} = $_;