diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm index d9572bc73..3189ccd98 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm @@ -19,9 +19,10 @@ sub perlExpr { $cpt->reval("BEGIN { 'warnings'->unimport; } $val"); my $err = join( '', - grep( { $_ =~ /Undefined subroutine/ ? () : $_; } split( /\n/, $@, 0 ) ) + grep( { $_ =~ /(?:Undefined subroutine|Devel::StackTrace)/ ? () : $_; } + split( /\n/, $@, 0 ) ) ); - return $err ? ( 0, "__badExpression__: $err" ) : 1; + return $err ? ( -1, "__badExpression__: $err" ) : 1; } sub types { diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm index a986b9686..028047fcf 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm @@ -25,8 +25,8 @@ sub perlExpr { $Lemonldap::NG::Common::Safelib::functions ); $cpt->reval("BEGIN { 'warnings'->unimport; } $val"); my $err = join( '', - grep { $_ =~ /Undefined subroutine/ ? () : $_ } split( /\n/, $@ ) ); - return $err ? ( 0, "__badExpression__: $err" ) : (1); + grep { $_ =~ /(?:Undefined subroutine|Devel::StackTrace)/ ? () : $_ } split( /\n/, $@ ) ); + return $err ? ( -1, "__badExpression__: $err" ) : (1); } my $url = $RE{URI}{HTTP}{ -scheme => "https?" }; 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 c69b71b72..69f311bc5 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Parser.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Parser.pm @@ -1207,7 +1207,14 @@ sub _execTest { if ( $ref eq 'CODE' ) { my ( $r, $m ) = ( $test->( $value, $conf, $attr ) ); if ($m) { - push @{ $self->{ ( $r ? 'warnings' : 'errors' ) } }, + push @{ + $self->{ ( + $r > 0 + ? 'warnings' + : ( $r < 0 ? 'needConfirmation' : 'errors' ) + ) + } + }, { message => "$key: $m" }; } elsif ( !$r ) {