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 7d3fc3cd3..b02ca431d 100644 --- a/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm +++ b/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm @@ -169,6 +169,7 @@ sub struct { proxy => ['proxyParams'], openid => ['openIdParams'], twitter => ['twitterParams'], + dbi => ['dbiParams'], }->{$mod}; if ($tmp) { $res{$_}++ foreach (@$tmp); @@ -293,6 +294,48 @@ sub struct { twitterSecret => 'text:/twitterSecret', twitterAppName => 'text:/twitterAppName', }, + + # DBI + dbiParams => { + _nodes => [qw(n:dbiConnection n:dbiSchema n:dbiPassword)], + + dbiConnection => { + _nodes => [qw(n:dbiConnectionAuth n:dbiConnectionUser)], + + dbiConnectionAuth => { + _nodes => + [qw(dbiAuthChain dbiAuthUser dbiAuthPassword)], + dbiAuthChain => 'text:/dbiAuthChain', + dbiAuthUser => 'text:/dbiAuthUser', + dbiAuthPassword => 'text:/dbiAuthPassword', + }, + + dbiConnectionUser => { + _nodes => + [qw(dbiUserChain dbiUserUser dbiUserPassword)], + dbiUserChain => 'text:/dbiUserChain', + dbiUserUser => 'text:/dbiUserUser', + dbiUserPassword => 'text:/dbiUserPassword', + }, + }, + + dbiSchema => { + _nodes => [ + qw(dbiAuthTable dbiUserTable dbiAuthLoginCol dbiAuthPasswordCol dbiAuthMailCol userPivot) + ], + dbiAuthTable => 'text:/dbiAuthTable', + dbiUserTable => 'text:/dbiUserTable', + dbiAuthLoginCol => 'text:/dbiAuthLoginCol', + dbiAuthPasswordCol => 'text:/dbiAuthPasswordCol', + dbiAuthMailCol => 'text:/dbiAuthMailCol', + userPivot => 'text:/userPivot', + }, + + dbiPassword => { + _nodes => [qw(dbiAuthPasswordHash)], + dbiAuthPasswordHash => 'text:/dbiAuthPasswordHash', + }, + }, }, # LOGS PARAMETERS @@ -642,7 +685,8 @@ sub testStruct { my $e = shift; $safe->reval( $e, 1 ); return 1 unless ($@); - return 1 if ( $@ =~ /Global symbol "\$.*requires explicit package/ ); + return 1 + if ( $@ =~ /Global symbol "\$.*requires explicit package/ ); return ( 1, "Function \"$1\" must be declared in customFunctions" ) if ( $@ =~ /Bareword "(.*?)" not allowed while "strict subs"/ ); @@ -976,6 +1020,22 @@ sub testStruct { twitterKey => $testNotDefined, twitterSecret => $testNotDefined, twitterAppName => $testNotDefined, + + # DBI + dbiAuthChain => $testNotDefined, + dbiAuthUser => $testNotDefined, + dbiAuthPassword => $testNotDefined, + dbiUserChain => $testNotDefined, + dbiUserUser => $testNotDefined, + dbiUserPassword => $testNotDefined, + dbiAuthTable => $testNotDefined, + dbiUserTable => $testNotDefined, + dbiAuthLoginCol => $testNotDefined, + dbiAuthPasswordCol => $testNotDefined, + dbiAuthMailCol => $testNotDefined, + userPivot => $testNotDefined, + dbiAuthPasswordHash => $testNotDefined, + }; } diff --git a/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_i18n.pm b/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_i18n.pm index cd2a2a1e2..f65a2caff 100644 --- a/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_i18n.pm +++ b/modules/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_i18n.pm @@ -51,6 +51,24 @@ sub en { authentication => 'Authentication module', AuthLDAPFilter => 'Authentication filter', authParams => 'Modules', + dbiAuthChain => 'Chain', + dbiAuthLoginCol => 'Login field name', + dbiAuthMailCol => 'Mail field name', + dbiAuthPassword => 'Password', + dbiAuthPasswordCol => 'Password field name', + dbiAuthPasswordHash => 'Hash scheme', + dbiAuthTable => 'Authentication table', + dbiAuthUser => 'User', + dbiConnection => 'Connection', + dbiConnectionAuth => 'Authentication process', + dbiConnectionUser => 'User process', + dbiParams => 'DBI parameters', + dbiPassword => 'Password', + dbiSchema => 'Schema', + dbiUserChain => 'Chain', + dbiUserPassword => 'Password', + dbiUserTable => 'User table', + dbiUserUser => 'User', CAS_CAFile => 'CA file', CAS_loginUrl => 'Login URL', casParams => 'CAS parameters', @@ -171,6 +189,7 @@ sub en { uploadDenied => 'Upload denied', userDB => 'Users module', userControl => 'Username control', + userPivot => 'Login field name in user table', useXForwardedForIP => "Use X-Forwarded-For header address", variables => "Variables", virtualHosts => 'Virtual Hosts', @@ -243,6 +262,24 @@ sub fr { authentication => "Module d'authentification", AuthLDAPFilter => 'Filtre d\'authentification', authParams => "Modules", + dbiAuthChain => 'Chaîne', + dbiAuthLoginCol => 'Champ identifiant', + dbiAuthMailCol => 'Champ mail', + dbiAuthPassword => 'Mot de passe', + dbiAuthPasswordCol => 'Champ mot de passe', + dbiAuthPasswordHash => 'Schéma de hachage', + dbiAuthTable => 'Table authentification', + dbiAuthUser => 'Utilisateur', + dbiConnection => 'Connexion', + dbiConnectionAuth => 'Authentification', + dbiConnectionUser => 'Utilisateurs', + dbiParams => 'Paramètres DBI', + dbiPassword => 'Mot de passe', + dbiSchema => 'Schéma', + dbiUserChain => 'Chaîne', + dbiUserPassword => 'Mot de passe', + dbiUserTable => 'Table des utilisateurs', + dbiUserUser => 'Utilisateur', CAS_CAFile => 'Fichier d\'AC', CAS_loginUrl => 'URL d\'authentification', casParams => 'Paramètres CAS', @@ -365,6 +402,7 @@ sub fr { uploadDenied => 'Téléchargement refusé', userDB => "Module d'utilisateurs", userControl => "Contrôle du nom d'utilisateur", + userPivot => 'Champ identifiant dans la table des utilisateurs', useXForwardedForIP => "Utiliser l'adresse IP de l'en-tête X-Forwarded-For", variables => "Variables",