From 162bcd3858caccf413fd914bc170dc45c0054a68 Mon Sep 17 00:00:00 2001 From: Xavier Guimard Date: Sun, 3 Oct 2010 21:43:22 +0000 Subject: [PATCH] - More configuration test - Compact configuration by removing unused and non-customized parameters (not finished) --- .../lib/Lemonldap/NG/Manager/Uploader.pm | 2 +- .../lib/Lemonldap/NG/Manager/_Struct.pm | 53 ++++++++++++++++++- 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Uploader.pm b/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Uploader.pm index 3bf285c87..60f77f203 100644 --- a/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Uploader.pm +++ b/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Uploader.pm @@ -373,7 +373,7 @@ s/^(samlSPMetaDataXML|samlSPMetaDataExportedAttributes|samlSPMetaDataOptions)\/( $errors->{error}->{$name} = $msg; } }; - $errors->{warnings}->{$name} = "Test $name failed" if($@); + $errors->{warnings}->{$name} = "Test $name failed: $@" if($@); } } diff --git a/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm b/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm index 06706a289..d3af6ceed 100644 --- a/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm +++ b/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm @@ -1798,9 +1798,11 @@ sub subDefaultConf { sub globalTests { my ( $self, $conf ) = splice @_; return { - 'portalIsInDomain' => sub { - # TODO: better parsing + # TODO: better parsing using Common::Regexp + + # 1. check if portal is in domain + portalIsInDomain => sub { return ( 1, ( @@ -1810,6 +1812,53 @@ sub globalTests { ) ); }, + + # 2. check if virtual hosts are in the domain + vhostInDomainOrCDA => sub { + return 1 if ( $conf->{cda} ); + my @pb; + foreach my $vh ( keys %{ $conf->{locationRules} } ) { + push @pb, $vh unless ( index( $vh, $conf->{domain} ) >= 0 ); + } + return ( + 1, + ( + @pb + ? 'Virtual hosts ' + . join( ', ', @pb ) + . " are not in $conf->{domain} and cross-domain-authentication is not set" + : undef + ) + ); + }, + + # 3. Remove unused and non-customize parameters + compactModules => sub { + foreach my $k ( keys %$conf ) { + next if ( ref $conf->{$k} ); + if ( + + # SAML keys + ( + $k =~ /^saml/i + and not( $conf->{issuerDBSAMLActivation} ) + and not( $conf->{authentication} =~ /saml/i ) + ) + + # TODO OpenID, CAS,... + ) + { + my $v = $self->defaultConf()->{$k}; + if ( defined($v) and $conf->{$k} eq $v ) { + delete $conf->{$k}; + } + else { + print STDERR "$k:\n\t$conf->{$k} => $v\n"; + } + } + } + return 1; + }, }; }