Manage exported variables for Demo backend (#636)

environments/ppa-mbqj77/deployments/1
Clément Oudot 11 years ago
parent bed5f37b7e
commit f7bcf5b711
  1. 5
      _example/conf/lmConf-1
  2. 3
      lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Serializer.pm
  3. 1
      lemonldap-ng-manager/example/skins/default/js/manager.js
  4. 30
      lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm
  5. 4
      lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_i18n.pm
  6. 10
      lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBDemo.pm

@ -10,9 +10,12 @@ persistentStorage
cookieName
'lemonldap'
exportedVars
demoExportedVars
'$data1 = {'uid' => 'uid','cn' => 'cn','mail' => 'mail'};'
exportedVars
'$data1 = {'UA' => 'HTTP_USER_AGENT'};'
authentication
'Demo'

@ -2,7 +2,7 @@ package Lemonldap::NG::Common::Conf::Serializer;
use Data::Dumper;
our $VERSION = '1.2.3';
our $VERSION = '1.4.0';
BEGIN {
*Lemonldap::NG::Common::Conf::normalize = \&normalize;
@ -106,6 +106,7 @@ sub unserialize {
|authChoiceModules
|CAS_proxiedServices
|casStorageOptions
|demoExportedVars
|exportedHeaders
|exportedVars
|globalStorageOptions

@ -14,6 +14,7 @@ var helpCh = {
'authDBISchema': '/pages/documentation/current/authdbi.html#schema',
'authCAS': '/pages/documentation/current/authcas.html',
'authChoice': '/pages/documentation/current/authchoice.html',
'authDemo': '/pages/documentation/current/authdemo.html',
'authFacebook': '/pages/documentation/current/authfacebook.html',
'authGoogle': '/pages/documentation/current/authgoogle.html',
'authLDAP': '/pages/documentation/current/authldap.html',

@ -391,13 +391,14 @@ sub struct {
null => ['nullParams'],
slave => ['slaveParams'],
choice => [
qw(ldapParams sslParams casParams radiusParams remoteParams proxyParams openIdParams googleParams facebookParams twitterParams webIDParams dbiParams apacheParams nullParams choiceParams slaveParams yubikeyParams browserIdParams)
qw(ldapParams sslParams casParams radiusParams remoteParams proxyParams openIdParams googleParams facebookParams twitterParams webIDParams dbiParams apacheParams nullParams choiceParams slaveParams yubikeyParams browserIdParams demoParams)
],
multi => [
qw(ldapParams sslParams casParams radiusParams remoteParams proxyParams openIdParams googleParams facebookParams twitterParams webIDParams dbiParams apacheParams nullParams choiceParams slaveParams yubikeyParams browserIdParams)
qw(ldapParams sslParams casParams radiusParams remoteParams proxyParams openIdParams googleParams facebookParams twitterParams webIDParams dbiParams apacheParams nullParams choiceParams slaveParams yubikeyParams browserIdParams demoParams)
],
yubikey => ['yubikeyParams'],
browserid => ['browserIdParams'],
demo => ['demoParams'],
}->{$mod};
if ($tmp) {
$res{$_}++ foreach (@$tmp);
@ -711,6 +712,16 @@ sub struct {
'text:/browserIdBackgroundColor',
},
demoParams => {
_nodes => [qw(cn:demoExportedVars)],
_help => 'authDemo',
demoExportedVars => {
_nodes => ['hash:/demoExportedVars:vars:btext'],
_js => 'hashRoot',
_help => 'authDemo',
},
},
},
# ISSUERDB PARAMETERS
@ -1450,8 +1461,14 @@ sub testStruct {
test => qr/^[a-zA-Z]\w*$/,
msgFail => 'Bad cookie name',
},
customFunctions => $testNotDefined,
domain => {
customFunctions => $testNotDefined,
demoExportedVars => {
keyTest => qr/^!?[a-zA-Z][\w-]*$/,
keyMsgFail => 'Bad variable name',
test => qr/^[a-zA-Z][\w:\-]*$/,
msgFail => 'Bad attribute name',
},
domain => {
test => qr/^\.?[\w\-]+(?:\.[a-zA-Z][\w\-]*)*(?:\.[a-zA-Z]+)$/,
msgFail => 'Bad domain',
},
@ -2245,8 +2262,9 @@ sub defaultConf {
sub subDefaultConf {
return {
exportedHeaders => { 'Auth-User' => '$uid' },
exportedVars => { cn => 'cn', mail => 'mail', uid => 'uid', },
demoExportedVars => { cn => 'cn', mail => 'mail', uid => 'uid', },
exportedHeaders => { 'Auth-User' => '$uid' },
exportedVars => { 'UA' => 'HTTP_USER_AGENT' },
globalStorageOptions => {
'Directory' => '/var/lib/lemonldap-ng/sessions/',
'LockDirectory' => '/var/lib/lemonldap-ng/sessions/lock/'

@ -105,6 +105,8 @@ sub en {
dbiUserUser => 'User',
deleteNotification => 'Mark notification as done',
deleteSession => 'Delete session',
demoExportedVars => 'Exported variables',
demoParams => 'Demonstration parameters',
done => 'done',
captcha_data => 'Directory for data',
captcha_login_enabled => 'Activation in login form',
@ -584,6 +586,8 @@ sub fr {
dbiUserUser => 'Utilisateur',
deleteNotification => 'Marquer la notification comme validée',
deleteSession => 'Effacer la session',
demoExportedVars => 'Variables exportées',
demoParams => 'Paramètres démonstration',
done => 'validée',
captcha_data => 'Répertoire des données',
captcha_login_enabled =>

@ -8,7 +8,7 @@ package Lemonldap::NG::Portal::UserDBDemo;
use strict;
use Lemonldap::NG::Portal::Simple;
our $VERSION = '1.3.0';
our $VERSION = '1.4.0';
## @apmethod int userDBInit()
# Check AuthDemo use
@ -62,7 +62,13 @@ sub getUser {
sub setSessionInfo {
my $self = shift;
foreach ( keys %{ $self->{exportedVars} } ) {
# Concat global exportedVars and module specific exportedVars
my @vars = ();
@vars = ( @vars, keys %{ $self->{exportedVars} } ) if $self->{exportedVars};
@vars = ( @vars, keys %{ $self->{demoExportedVars} } )
if $self->{demoExportedVars};
foreach (@vars) {
$self->{sessionInfo}->{$_} =
$self->{_demoAccounts}->{ $self->{user} }->{$_}
|| "";

Loading…
Cancel
Save