From 1dd340faeac63745d057027f5e1cc52a6c0f23de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Oudot?= Date: Mon, 2 Jun 2014 16:07:35 +0000 Subject: [PATCH] Register parameters in Manager (#26) --- .../example/skins/default/js/manager.js | 10 +++ .../lib/Lemonldap/NG/Manager/_Struct.pm | 83 +++++++++++++------ .../lib/Lemonldap/NG/Manager/_i18n.pm | 21 +++++ 3 files changed, 88 insertions(+), 26 deletions(-) diff --git a/lemonldap-ng-manager/example/skins/default/js/manager.js b/lemonldap-ng-manager/example/skins/default/js/manager.js index 19c31c08c..2718edb44 100644 --- a/lemonldap-ng-manager/example/skins/default/js/manager.js +++ b/lemonldap-ng-manager/example/skins/default/js/manager.js @@ -56,6 +56,7 @@ var helpCh = { 'portalRedirections': '/pages/documentation/current/redirections.html#portal_redirections', 'post': '/pages/documentation/current/formreplay.html', 'redirections': '/pages/documentation/current/redirections.html', + 'register': '/pages/documentation/current/register.html', 'reloadUrls': '/pages/documentation/current/configlocation.html#configuration_reload', 'rules': '/pages/documentation/current/writingrulesand_headers.html#rules', 'samlIDP': '/pages/documentation/current/authsaml.html#register_partner_identity_provider_on_lemonldapng', @@ -735,6 +736,15 @@ function formateSelectPassword(id, value) { } formateSelect(id, ['AD=Active Directory', 'DBI=Database (DBI)', 'Demo=Demonstration', 'LDAP=LDAP', 'Null=None'], value); } +function registerdbParams(id) { + currentId = id; + $('#authOptions').hide(); + formateSelectRegister('authText', lmdata(id)); + display('authParams', lmtext(id)); +} +function formateSelectRegister(id, value) { + formateSelect(id, ['AD=Active Directory', 'Demo=Demonstration', 'LDAP=LDAP', 'Null=None'], value); +} function skinSelect(id) { currentId = id; changeSkinImage(lmdata(id)); diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm index c502e1d12..8b1e39726 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm @@ -304,7 +304,7 @@ sub struct { portalCustomization => { _nodes => [ - qw(portalSkin cn:portalSkinRules portalAutocomplete portalCheckLogins portalUserAttr portalOpenLinkInNewWindow portalAntiFrame portalPingInterval passwordManagement) + qw(portalSkin cn:portalSkinRules portalButtons passwordManagement portalOther) ], _help => 'portalcustom', @@ -314,38 +314,50 @@ sub struct { _js => 'hashRoot', _help => 'portalcustom', }, - portalAutocomplete => 'bool:/portalAutocomplete', - portalCheckLogins => 'bool:/portalCheckLogins', - portalUserAttr => 'text:/portalUserAttr', - portalOpenLinkInNewWindow => - 'bool:/portalOpenLinkInNewWindow', - portalAntiFrame => 'bool:/portalAntiFrame', - portalPingInterval => 'int:/portalPingInterval', - - passwordManagement => { + portalButtons => { _nodes => [ - qw(portalDisplayResetPassword portalRequireOldPassword hideOldPassword mailOnPasswordChange) + qw/portalCheckLogins portalDisplayResetPassword portalDisplayRegister/ ], - + portalCheckLogins => 'bool:/portalCheckLogins', portalDisplayResetPassword => 'bool:/portalDisplayResetPassword', + portalDisplayRegister => 'bool:/portalDisplayRegister', + }, + passwordManagement => { + _nodes => [ + qw(portalRequireOldPassword hideOldPassword mailOnPasswordChange) + ], + portalRequireOldPassword => 'bool:/portalRequireOldPassword', hideOldPassword => 'bool:/hideOldPassword', mailOnPasswordChange => 'bool:/mailOnPasswordChange', }, + portalOther => { + _nodes => [ + qw/portalAutocomplete portalUserAttr portalOpenLinkInNewWindow portalAntiFrame portalPingInterval/ + ], + portalAutocomplete => 'bool:/portalAutocomplete', + portalUserAttr => 'text:/portalUserAttr', + portalOpenLinkInNewWindow => + 'bool:/portalOpenLinkInNewWindow', + portalAntiFrame => 'bool:/portalAntiFrame', + portalPingInterval => 'int:/portalPingInterval', + }, }, portalCaptcha => { _nodes => [ - qw(captcha_login_enabled captcha_mail_enabled captcha_size captcha_data captcha_output) + qw(captcha_login_enabled captcha_mail_enabled captcha_register_enabled captcha_size captcha_data captcha_output) ], captcha_login_enabled => 'bool:/captcha_login_enabled', captcha_mail_enabled => 'bool:/captcha_mail_enabled', - captcha_size => 'int:/captcha_size', - captcha_data => 'text:/captcha_data', - captcha_output => 'text:/captcha_output', + captcha_register_enabled => + 'bool:/captcha_register_enabled', + captcha_size => 'int:/captcha_size', + captcha_data => 'text:/captcha_data', + captcha_output => 'text:/captcha_output', }, }, @@ -930,7 +942,7 @@ sub struct { # OTHER PARAMETERS advancedParams => { _nodes => [ - qw(customFunctions n:soap n:loginHistory n:notifications n:passwordManagement n:security n:redirection n:portalRedirection n:specialHandlers cn:logoutServices) + qw(customFunctions n:soap n:loginHistory n:notifications n:passwordManagement n:register n:security n:redirection n:portalRedirection n:specialHandlers cn:logoutServices) ], _help => 'advanced', @@ -1010,6 +1022,18 @@ sub struct { }, }, + register => { + _nodes => [ + qw/registerDB registerUrl registerTimeout registerConfirmSubject registerDoneSubject/ + ], + _help => 'register', + registerDB => 'text:/registerDB:register:registerdbParams', + registerUrl => 'text:/registerUrl', + registerTimeout => 'int:/registerTimeout', + registerConfirmSubject => 'text:/registerConfirmSubject', + registerDoneSubject => 'text:/registerDoneSubject', + }, + security => { _nodes => [ qw(userControl portalForceAuthn key trustedDomains useSafeJail checkXSS) @@ -1490,14 +1514,15 @@ sub testStruct { }, msgFail => 'Bad module name', }, - captcha_login_enabled => $boolean, - captcha_mail_enabled => $boolean, - captcha_size => $integer, - captcha_data => $testNotDefined, - captcha_output => $testNotDefined, - cda => $boolean, - checkXSS => $boolean, - cookieName => { + captcha_login_enabled => $boolean, + captcha_mail_enabled => $boolean, + captcha_register_enabled => $boolean, + captcha_size => $integer, + captcha_data => $testNotDefined, + captcha_output => $testNotDefined, + cda => $boolean, + checkXSS => $boolean, + cookieName => { test => qr/^[a-zA-Z]\w*$/, msgFail => 'Bad cookie name', }, @@ -1714,6 +1739,7 @@ m{^(?:ldapi://[^/]*/?|\w[\w\-\.]*(?::\d{1,5})?|ldap(?:s|\+tls)?://\w[\w\-\.]*(?: portalDisplayAppslist => { test => $perlExpr, }, portalDisplayChangePassword => { test => $perlExpr, }, portalDisplayLogout => { test => $perlExpr, }, + portalDisplayRegister => $boolean, portalDisplayResetPassword => $boolean, portalForceAuthn => $boolean, portalOpenLinkInNewWindow => $boolean, @@ -1745,7 +1771,12 @@ m{^(?:ldapi://[^/]*/?|\w[\w\-\.]*(?::\d{1,5})?|ldap(?:s|\+tls)?://\w[\w\-\.]*(?: keyTest => qr/^(?:none|authentificate|manager|)$/, msgFail => 'must be one of none authentificate manager', }, - reloadUrls => { + registerConfirmSubject => $testNotDefined, + registerDB => $testNotDefined, + registerDoneSubject => $testNotDefined, + registerTimeout => $integer, + registerUrl => $testNotDefined, + reloadUrls => { keyTest => $domainNameOrIp, test => Lemonldap::NG::Common::Regexp::HTTP_URI(), msgFail => 'Bad url' diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_i18n.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_i18n.pm index ffdb8d325..f30b6c9bf 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_i18n.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_i18n.pm @@ -112,6 +112,7 @@ sub en { captcha_data => 'Directory for data', captcha_login_enabled => 'Activation in login form', captcha_mail_enabled => 'Activation in password reset by mail form', + captcha_register_enabled => 'Activation in register form', captcha_output => 'Directory for images', captcha_size => 'Size', CAS_authnLevel => 'Authentication level', @@ -285,6 +286,7 @@ sub en { portal => 'URL', portalAntiFrame => 'Anti frame protection', portalAutocomplete => 'Auto complete', + portalButtons => 'Buttons on login page', portalCaptcha => 'Captcha', portalCheckLogins => 'Check last logins', portalCustomization => 'Customization', @@ -292,11 +294,13 @@ sub en { portalDisplayChangePassword => 'Password change', portalDisplayLoginHistory => 'Login History', portalDisplayLogout => 'Logout', + portalDisplayRegister => 'Register new account', portalDisplayResetPassword => 'Reset password', portalForceAuthn => 'Force authentication', portalMenu => 'Menu', portalModules => 'Modules activation', portalOpenLinkInNewWindow => 'New window', + portalOther => 'Other', portalParams => 'Portal', portalPingInterval => 'Ping Interval', portalRedirection => 'Portal redirections', @@ -313,6 +317,12 @@ sub en { radiusServer => 'Server hostname', randomPasswordRegexp => 'Regexp for password generation', redirection => 'Handler redirections', + register => 'Register new account', + registerConfirmSubject => 'Subject for confirmation mail', + registerDB => 'Module', + registerDoneSubject => 'Subject for done mail', + registerTimeout => 'Validity time of a register request', + registerUrl => 'Page URL', reloadUrls => 'Configuration reload', remoteCookieName => 'Cookie name', remoteGlobalStorage => 'Sessions module', @@ -602,6 +612,8 @@ sub fr { "Activation dans le formulaire d'authentification", captcha_mail_enabled => 'Activation dans le formulaire de réinitialisation par mail', + captcha_register_enabled => + 'Activation dans le formulaire de création de compte', captcha_output => 'Répertoire des images', captcha_size => 'Taille', CAS_authnLevel => 'Niveau d\'authentification', @@ -780,6 +792,7 @@ sub fr { portal => 'URL', portalAntiFrame => 'Protection anti frame', portalAutocomplete => 'Auto complétion', + portalButtons => 'Boutons sur la page de connexion', portalCaptcha => 'Captcha', portalCheckLogins => 'Vérifier l\'historique', portalCustomization => 'Personnalisation', @@ -787,11 +800,13 @@ sub fr { portalDisplayChangePassword => 'Changement de mot de passe', portalDisplayLoginHistory => 'Historique des connexions', portalDisplayLogout => 'Déconnexion', + portalDisplayRegister => 'Création d\'un nouveau compte', portalDisplayResetPassword => 'Réinitialisation de mot de passe', portalForceAuthn => 'Authentication forcée', portalMenu => 'Menu', portalModules => 'Modules', portalOpenLinkInNewWindow => 'Nouvelle fenêtre', + portalOther => 'Autres', portalParams => 'Portail', portalPingInterval => 'Interval du ping', portalRedirection => 'Redirections du portail', @@ -809,6 +824,12 @@ sub fr { randomPasswordRegexp => 'Expression regulière pour la génération des mots de passe', redirection => 'Redirections du Handler', + register => 'Créer un nouveau compte', + registerConfirmSubject => 'Sujet du mail de confirmation', + registerDB => 'Module', + registerDoneSubject => 'Sujet du mail de prise en compte', + registerTimeout => 'Durée de validité de la requête', + registerUrl => 'URL de la page', reloadUrls => 'Mise à jour de la configuration', remoteCookieName => 'Nom du cookie', remoteGlobalStorage => 'Module des sessions',