From 6827b4e48544d33a1ea0320ab31f960da44baf14 Mon Sep 17 00:00:00 2001 From: Xavier Guimard Date: Sun, 30 Jul 2017 08:20:15 +0000 Subject: [PATCH] Fix #1282: conf parser didn't check unopened combModules node --- .../lib/Lemonldap/NG/Manager/Conf/Parser.pm | 39 ++++++++++--------- .../Lemonldap/NG/Portal/Auth/Combination.pm | 3 +- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Parser.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Parser.pm index 4dcaf576d..c48e442b8 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Parser.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Parser.pm @@ -712,25 +712,6 @@ sub _scanNodes { next; } - # combModules: just to replace "over" key - elsif ( $name eq 'combModules' ) { - hdebug('combModules'); - $self->newConf->{$name} = {}; - foreach my $node ( @{ $leaf->{nodes} } ) { - my $tmp; - $tmp->{$_} = $node->{data}->{$_} foreach (qw(type for)); - $tmp->{over} = {}; - foreach ( @{ $node->{data}->{over} } ) { - $tmp->{over}->{ $_->[0] } = $_->[1]; - } - $self->newConf->{$name}->{ $node->{title} } = $tmp; - } - - # TODO: check changes - $self->confChanged(1); - next; - } - #################### # Other hash nodes # #################### @@ -746,6 +727,26 @@ sub _scanNodes { } else { hdebug(' opened'); + + # combModules: just to replace "over" key + if ( $name eq 'combModules' ) { + hdebug(' combModules'); + $self->newConf->{$name} = {}; + foreach my $node ( @{ $leaf->{nodes} } ) { + my $tmp; + $tmp->{$_} = $node->{data}->{$_} foreach (qw(type for)); + $tmp->{over} = {}; + foreach ( @{ $node->{data}->{over} } ) { + $tmp->{over}->{ $_->[0] } = $_->[1]; + } + $self->newConf->{$name}->{ $node->{title} } = $tmp; + } + + # TODO: check changes + $self->confChanged(1); + next; + } + $subNodes //= []; my $count = 0; my @old = ( diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Combination.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Combination.pm index 41b8ddeb8..8604a017c 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Combination.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Combination.pm @@ -225,7 +225,8 @@ sub loadPlugin { } return 0 unless ( $obj = $self->p->loadModule( "$plugin", $nc ) ); - $obj = $self->p->findEP( $plugin, $obj ); + return 0 + unless $obj = $self->p->findEP( $plugin, $obj ); $obj->{userLogger} = $self->wrapUserLogger; weaken $obj->{userLogger}; return $obj;