Combination seems finished (except tests) (#1151)
This commit is contained in:
parent
4741948fce
commit
58ee26a128
|
@ -581,6 +581,28 @@ sub _scanCatsAndApps {
|
||||||
return \@res;
|
return \@res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 325 - Combination modules
|
||||||
|
|
||||||
|
# Returns raw value, just transform "over" key
|
||||||
|
sub combModules {
|
||||||
|
my ( $self, $req, $key ) = @_;
|
||||||
|
return $self->sendError( 'Subkeys forbidden for combModules', 400 )
|
||||||
|
if ($key);
|
||||||
|
my $val = $self->getConfKey( $req, 'combModules' ) // {};
|
||||||
|
my $res = [];
|
||||||
|
foreach my $mod ( keys %$val ) {
|
||||||
|
my $tmp;
|
||||||
|
$tmp->{title} = $mod;
|
||||||
|
$tmp->{id} = "combModules/$mod";
|
||||||
|
$tmp->{type} = 'cmbModule';
|
||||||
|
$tmp->{data}->{$_} = $val->{$mod}->{$_} foreach (qw(type for));
|
||||||
|
my $over = $val->{$mod}->{over} // {};
|
||||||
|
$tmp->{data}->{over} = [ map { [ $_, $over->{$_} ] } keys %$over ];
|
||||||
|
push @$res, $tmp;
|
||||||
|
}
|
||||||
|
return $self->sendJSONresponse($req,$res);
|
||||||
|
}
|
||||||
|
|
||||||
# 33 - Root queries
|
# 33 - Root queries
|
||||||
# -----------
|
# -----------
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,8 @@ site/static/forms/blackWhiteList.html
|
||||||
site/static/forms/bool.html
|
site/static/forms/bool.html
|
||||||
site/static/forms/boolOrExpr.html
|
site/static/forms/boolOrExpr.html
|
||||||
site/static/forms/catAndAppList.html
|
site/static/forms/catAndAppList.html
|
||||||
|
site/static/forms/cmbModule.html
|
||||||
|
site/static/forms/cmbModuleContainer.html
|
||||||
site/static/forms/doubleHash.html
|
site/static/forms/doubleHash.html
|
||||||
site/static/forms/file.html
|
site/static/forms/file.html
|
||||||
site/static/forms/grant.html
|
site/static/forms/grant.html
|
||||||
|
@ -165,6 +167,7 @@ t/07-utf8.t
|
||||||
t/10-save-unchanged-conf.t
|
t/10-save-unchanged-conf.t
|
||||||
t/12-save-changed-conf.t
|
t/12-save-changed-conf.t
|
||||||
t/14-bad-changes-in-conf.t
|
t/14-bad-changes-in-conf.t
|
||||||
|
t/15-combination.t
|
||||||
t/20-test-coverage.t
|
t/20-test-coverage.t
|
||||||
t/40-sessions.t
|
t/40-sessions.t
|
||||||
t/50-notifications.t
|
t/50-notifications.t
|
||||||
|
@ -176,5 +179,6 @@ t/jsonfiles/01-base-tree.json
|
||||||
t/jsonfiles/02-base-tree-all-nodes-opened.json
|
t/jsonfiles/02-base-tree-all-nodes-opened.json
|
||||||
t/jsonfiles/12-modified.json
|
t/jsonfiles/12-modified.json
|
||||||
t/jsonfiles/14-bad.json
|
t/jsonfiles/14-bad.json
|
||||||
|
t/jsonfiles/15-combination.json
|
||||||
t/lemonldap-ng.ini
|
t/lemonldap-ng.ini
|
||||||
t/test-lib.pm
|
t/test-lib.pm
|
||||||
|
|
|
@ -39,7 +39,8 @@ sub addRoutes {
|
||||||
':cfgNum' => [
|
':cfgNum' => [
|
||||||
qw(virtualHosts samlIDPMetaDataNodes samlSPMetaDataNodes
|
qw(virtualHosts samlIDPMetaDataNodes samlSPMetaDataNodes
|
||||||
applicationList oidcOPMetaDataNodes oidcRPMetaDataNodes
|
applicationList oidcOPMetaDataNodes oidcRPMetaDataNodes
|
||||||
authChoiceModules grantSessionRules)
|
authChoiceModules grantSessionRules combModules
|
||||||
|
openIdIDPList)
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
['GET']
|
['GET']
|
||||||
|
|
|
@ -643,6 +643,25 @@ sub _scanNodes {
|
||||||
next;
|
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 #
|
# Other hash nodes #
|
||||||
####################
|
####################
|
||||||
|
|
34
lemonldap-ng-manager/t/15-combination.t
Normal file
34
lemonldap-ng-manager/t/15-combination.t
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
#!/usr/bin/env perl -I pl/lib
|
||||||
|
#
|
||||||
|
# Verify that bas changes are detected
|
||||||
|
|
||||||
|
use Test::More;
|
||||||
|
use strict;
|
||||||
|
use JSON;
|
||||||
|
use Data::Dumper;
|
||||||
|
require 't/test-lib.pm';
|
||||||
|
|
||||||
|
my $struct = 't/jsonfiles/15-combination.json';
|
||||||
|
|
||||||
|
sub body {
|
||||||
|
return IO::File->new( $struct, 'r' );
|
||||||
|
}
|
||||||
|
|
||||||
|
unlink 't/conf/lmConf-2.json';
|
||||||
|
|
||||||
|
my ( $res, $resBody );
|
||||||
|
ok( $res = &client->_post( '/confs/', 'cfgNum=1', &body, 'application/json' ),
|
||||||
|
"Request succeed" );
|
||||||
|
ok( $res->[0] == 200, "Result code is 200" );
|
||||||
|
ok( $resBody = from_json( $res->[2]->[0] ), "Result body contains JSON text" );
|
||||||
|
ok( $resBody->{result} == 1, "JSON response contains \"result:1\"" )
|
||||||
|
or print STDERR Dumper($res);
|
||||||
|
|
||||||
|
ok( $res = &client->_get( '/confs/2/combModules', 'application/json' ), 'Get combModules');
|
||||||
|
ok( $resBody = from_json( $res->[2]->[0] ), "Result body contains JSON text" );
|
||||||
|
|
||||||
|
count(6);
|
||||||
|
|
||||||
|
done_testing( count() );
|
||||||
|
|
||||||
|
unlink 't/conf/lmConf-2.json';
|
Loading…
Reference in New Issue
Block a user