Add ldapGetUserBeforePasswordChange to manager (#714)

This commit is contained in:
Maxime Besson 2021-01-08 14:32:57 +01:00
parent 6517718f26
commit 93988663b4
18 changed files with 24 additions and 4 deletions

View File

@ -30,7 +30,7 @@ use constant DEFAULTCONFBACKENDOPTIONS => (
dirName => '/usr/local/lemonldap-ng/data/conf',
);
our $hashParameters = qr/^(?:(?:l(?:o(?:ca(?:lSessionStorageOption|tionRule)|goutService)|dapExportedVar|wp(?:Ssl)?Opt)|(?:(?:d(?:emo|bi)|facebook|webID)ExportedVa|exported(?:Heade|Va)|issuerDBGetParamete)r|re(?:moteGlobalStorageOption|st2f(?:Verify|Init)Arg|loadUrl)|g(?:r(?:antSessionRule|oup)|lobalStorageOption)|n(?:otificationStorageOption|ginxCustomHandler)|macro)s|o(?:idc(?:S(?:ervice(?:DynamicRegistrationEx(?:portedVar|traClaim)s|MetaDataAuthnContext)|torageOptions)|RPMetaData(?:(?:Option(?:sExtraClaim)?|ExportedVar|Macro)s|Node)|OPMetaData(?:(?:ExportedVar|Option)s|J(?:SON|WKS)|Node))|penIdExportedVars)|c(?:as(?:A(?:ppMetaData(?:(?:ExportedVar|Option|Macro)s|Node)|ttributes)|S(?:rvMetaData(?:(?:ExportedVar|Option)s|Node)|torageOptions))|(?:ustom(?:Plugins|Add)Param|heckUserHiddenHeader|ombModule)s)|s(?:aml(?:S(?:PMetaData(?:(?:ExportedAttribute|Option|Macro)s|Node|XML)|torageOptions)|IDPMetaData(?:(?:ExportedAttribute|Option)s|Node|XML))|essionDataToRemember|laveExportedVars|fExtra)|a(?:(?:daptativeAuthenticationLevelR|ut(?:hChoiceMod|oSigninR))ules|pplicationList)|p(?:ersistentStorageOptions|o(?:rtalSkinRules|st))|v(?:hostOptions|irtualHost)|S(?:MTPTLSOpts|SLVarIf))$/;
our $boolKeys = qr/^(?:s(?:aml(?:IDP(?:MetaDataOptions(?:(?:Check(?:S[LS]OMessageSignatur|Audienc|Tim)|IsPassiv)e|A(?:llow(?:LoginFromIDP|ProxiedAuthn)|daptSessionUtime)|Force(?:Authn|UTF8)|StoreSAMLToken|RelayStateURL)|SSODescriptorWantAuthnRequestsSigned)|S(?:P(?:MetaDataOptions(?:(?:CheckS[LS]OMessageSignatur|OneTimeUs)e|EnableIDPInitiatedURL|ForceUTF8)|SSODescriptor(?:WantAssertion|AuthnRequest)sSigned)|erviceUseCertificateInResponse)|DiscoveryProtocol(?:Activation|IsPassive)|CommonDomainCookieActivation|UseQueryStringSpecific|MetadataForceUTF8)|f(?:RemovedUseNotif|OnlyUpgrade)|kip(?:Upgrade|Renew)Confirmation|oap(?:Session|Config)Server|t(?:ayConnecte|orePasswor)d|laveDisplayLogo|howLanguages|slByAjax)|o(?:idc(?:RPMetaDataOptions(?:Allow(?:PasswordGrant|Offline)|Re(?:freshToken|quirePKCE)|LogoutSessionRequired|IDTokenForceClaims|BypassConsent|Public)|ServiceAllow(?:(?:AuthorizationCode|Implicit|Hybrid)Flow|DynamicRegistration)|OPMetaDataOptions(?:(?:CheckJWTSignatur|UseNonc)e|StoreIDToken))|ldNotifFormat)|p(?:ortal(?:Display(?:Re(?:freshMyRights|setPassword|gister)|CertificateResetByMail|GeneratePassword|PasswordPolicy)|ErrorOn(?:ExpiredSession|MailNotFound)|(?:CheckLogin|Statu)s|OpenLinkInNewWindow|ForceAuthn|AntiFrame)|roxyUseSoap)|c(?:o(?:ntextSwitching(?:Allowed2fModifications|StopWithLogout)|mpactConf|rsEnabled)|a(?:ptcha_(?:register|login|mail)_enabled|sSrvMetaDataOptions(?:Gateway|Renew))|heck(?:State|User|XSS)|da)|l(?:dap(?:(?:Group(?:DecodeSearchedValu|Recursiv)|UsePasswordResetAttribut)e|(?:AllowResetExpired|Set)Password|ChangePasswordAsUser|PpolicyControl|ITDS)|oginHistoryEnabled)|no(?:tif(?:ication(?:Server(?:(?:POS|GE)T|DELETE)?|sExplorer)?|y(?:Deleted|Other))|AjaxHook)|i(?:ssuerDB(?:OpenID(?:Connect)?|SAML|CAS|Get)Activation|mpersonationSkipEmptyValues)|to(?:tp2f(?:UserCan(?:Chang|Remov)eKey|DisplayExistingSecret)|kenUseGlobalStorage)|u(?:se(?:RedirectOn(?:Forbidden|Error)|SafeJail)|2fUserCanRemoveKey|pgradeSession)|re(?:st(?:(?:Password|Session|Config|Auth)Server|ExportSecretKeys)|freshSessions)|br(?:uteForceProtection(?:IncrementalTempo)?|owsersDontStorePassword)|d(?:is(?:ablePersistentStorage|playSessionId)|biDynamicHashEnabled)|(?:mai(?:lOnPasswordChang|ntenanc)|vhostMaintenanc)e|g(?:roupsBeforeMacros|lobalLogoutTimer)|a(?:voidAssignment|ctiveTimer)|h(?:ideOldPassword|ttpOnly)|yubikey2fUserCanRemoveKey|krb(?:RemoveDomain|ByJs)|wsdlServer)$/;
our $boolKeys = qr/^(?:s(?:aml(?:IDP(?:MetaDataOptions(?:(?:Check(?:S[LS]OMessageSignatur|Audienc|Tim)|IsPassiv)e|A(?:llow(?:LoginFromIDP|ProxiedAuthn)|daptSessionUtime)|Force(?:Authn|UTF8)|StoreSAMLToken|RelayStateURL)|SSODescriptorWantAuthnRequestsSigned)|S(?:P(?:MetaDataOptions(?:(?:CheckS[LS]OMessageSignatur|OneTimeUs)e|EnableIDPInitiatedURL|ForceUTF8)|SSODescriptor(?:WantAssertion|AuthnRequest)sSigned)|erviceUseCertificateInResponse)|DiscoveryProtocol(?:Activation|IsPassive)|CommonDomainCookieActivation|UseQueryStringSpecific|MetadataForceUTF8)|f(?:RemovedUseNotif|OnlyUpgrade)|kip(?:Upgrade|Renew)Confirmation|oap(?:Session|Config)Server|t(?:ayConnecte|orePasswor)d|laveDisplayLogo|howLanguages|slByAjax)|o(?:idc(?:RPMetaDataOptions(?:Allow(?:PasswordGrant|Offline)|Re(?:freshToken|quirePKCE)|LogoutSessionRequired|IDTokenForceClaims|BypassConsent|Public)|ServiceAllow(?:(?:AuthorizationCode|Implicit|Hybrid)Flow|DynamicRegistration)|OPMetaDataOptions(?:(?:CheckJWTSignatur|UseNonc)e|StoreIDToken))|ldNotifFormat)|p(?:ortal(?:Display(?:Re(?:freshMyRights|setPassword|gister)|CertificateResetByMail|GeneratePassword|PasswordPolicy)|ErrorOn(?:ExpiredSession|MailNotFound)|(?:CheckLogin|Statu)s|OpenLinkInNewWindow|ForceAuthn|AntiFrame)|roxyUseSoap)|l(?:dap(?:(?:G(?:roup(?:DecodeSearchedValu|Recursiv)|etUserBeforePasswordChang)|UsePasswordResetAttribut)e|(?:AllowResetExpired|Set)Password|ChangePasswordAsUser|PpolicyControl|ITDS)|oginHistoryEnabled)|c(?:o(?:ntextSwitching(?:Allowed2fModifications|StopWithLogout)|mpactConf|rsEnabled)|a(?:ptcha_(?:register|login|mail)_enabled|sSrvMetaDataOptions(?:Gateway|Renew))|heck(?:State|User|XSS)|da)|no(?:tif(?:ication(?:Server(?:(?:POS|GE)T|DELETE)?|sExplorer)?|y(?:Deleted|Other))|AjaxHook)|i(?:ssuerDB(?:OpenID(?:Connect)?|SAML|CAS|Get)Activation|mpersonationSkipEmptyValues)|to(?:tp2f(?:UserCan(?:Chang|Remov)eKey|DisplayExistingSecret)|kenUseGlobalStorage)|u(?:se(?:RedirectOn(?:Forbidden|Error)|SafeJail)|2fUserCanRemoveKey|pgradeSession)|re(?:st(?:(?:Password|Session|Config|Auth)Server|ExportSecretKeys)|freshSessions)|br(?:uteForceProtection(?:IncrementalTempo)?|owsersDontStorePassword)|d(?:is(?:ablePersistentStorage|playSessionId)|biDynamicHashEnabled)|(?:mai(?:lOnPasswordChang|ntenanc)|vhostMaintenanc)e|g(?:roupsBeforeMacros|lobalLogoutTimer)|a(?:voidAssignment|ctiveTimer)|h(?:ideOldPassword|ttpOnly)|yubikey2fUserCanRemoveKey|krb(?:RemoveDomain|ByJs)|wsdlServer)$/;
our @sessionTypes = ( 'remoteGlobal', 'global', 'localSession', 'persistent', 'saml', 'oidc', 'cas' );

View File

@ -45,7 +45,7 @@ our $authParameters = {
githubParams => [qw(githubAuthnLevel githubClientID githubClientSecret githubUserField githubScope)],
gpgParams => [qw(gpgAuthnLevel gpgDb)],
kerberosParams => [qw(krbAuthnLevel krbKeytab krbByJs krbRemoveDomain krbAllowedDomains)],
ldapParams => [qw(ldapAuthnLevel ldapExportedVars ldapServer ldapPort ldapVerify ldapBase managerDn managerPassword ldapTimeout ldapIOTimeout ldapVersion ldapRaw ldapCAFile ldapCAPath LDAPFilter AuthLDAPFilter mailLDAPFilter ldapSearchDeref ldapGroupBase ldapGroupObjectClass ldapGroupAttributeName ldapGroupAttributeNameUser ldapGroupAttributeNameSearch ldapGroupDecodeSearchedValue ldapGroupRecursive ldapGroupAttributeNameGroup ldapPpolicyControl ldapSetPassword ldapChangePasswordAsUser ldapPwdEnc ldapUsePasswordResetAttribute ldapPasswordResetAttribute ldapPasswordResetAttributeValue ldapAllowResetExpiredPassword ldapITDS)],
ldapParams => [qw(ldapAuthnLevel ldapExportedVars ldapServer ldapPort ldapVerify ldapBase managerDn managerPassword ldapTimeout ldapIOTimeout ldapVersion ldapRaw ldapCAFile ldapCAPath LDAPFilter AuthLDAPFilter mailLDAPFilter ldapSearchDeref ldapGroupBase ldapGroupObjectClass ldapGroupAttributeName ldapGroupAttributeNameUser ldapGroupAttributeNameSearch ldapGroupDecodeSearchedValue ldapGroupRecursive ldapGroupAttributeNameGroup ldapPpolicyControl ldapSetPassword ldapChangePasswordAsUser ldapPwdEnc ldapUsePasswordResetAttribute ldapPasswordResetAttribute ldapPasswordResetAttributeValue ldapAllowResetExpiredPassword ldapGetUserBeforePasswordChange ldapITDS)],
linkedinParams => [qw(linkedInAuthnLevel linkedInClientID linkedInClientSecret linkedInFields linkedInUserField linkedInScope)],
nullParams => [qw(nullAuthnLevel)],
oidcParams => [qw(oidcAuthnLevel oidcRPCallbackGetParam oidcRPStateTimeout)],

View File

@ -1658,6 +1658,10 @@ qr/^(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-
'LDAPFilter' => {
'type' => 'text'
},
'ldapGetUserBeforePasswordChange' => {
'default' => 0,
'type' => 'bool'
},
'ldapGroupAttributeName' => {
'default' => 'member',
'type' => 'text'

View File

@ -3292,6 +3292,10 @@ m{^(?:ldapi://[^/]*/?|\w[\w\-\.]*(?::\d{1,5})?|ldap(?:s|\+tls)?://\w[\w\-\.]*(?:
default => 0,
type => 'bool',
},
ldapGetUserBeforePasswordChange => {
default => 0,
type => 'bool',
},
ldapSearchDeref => {
type => 'select',
select => [

View File

@ -302,6 +302,7 @@ sub tree {
'ldapPasswordResetAttribute',
'ldapPasswordResetAttributeValue',
'ldapAllowResetExpiredPassword',
'ldapGetUserBeforePasswordChange',
'ldapITDS'
]
},

View File

@ -435,6 +435,7 @@
"ldapFilters":"فلتر",
"LDAPFilter":"فلتر الاعْتيادي",
"ldapGroupAttributeName":"السمات المستهدف",
"ldapGetUserBeforePasswordChange":"Search for user before password change",
"ldapGroupAttributeNameGroup":"سمات مصدر المجموعة",
"ldapGroupAttributeNameSearch":"السمات التي تم البحث عنها",
"ldapGroupAttributeNameUser":"سمة مصدر المستخدم",

View File

@ -434,6 +434,7 @@
"ldapExportedVars":"Exported variables",
"ldapFilters":"Filters",
"LDAPFilter":"Default filter",
"ldapGetUserBeforePasswordChange":"Search for user before password change",
"ldapGroupAttributeName":"Target attribute",
"ldapGroupAttributeNameGroup":"Group source attribute",
"ldapGroupAttributeNameSearch":"Searched attributes",

View File

@ -434,6 +434,7 @@
"ldapExportedVars":"Exported variables",
"ldapFilters":"Filters",
"LDAPFilter":"Default filter",
"ldapGetUserBeforePasswordChange":"Search for user before password change",
"ldapGroupAttributeName":"Target attribute",
"ldapGroupAttributeNameGroup":"Group source attribute",
"ldapGroupAttributeNameSearch":"Searched attributes",

View File

@ -434,6 +434,7 @@
"ldapExportedVars":"Variables exportadas",
"ldapFilters":"Filtros",
"LDAPFilter":"Filtro por defecto",
"ldapGetUserBeforePasswordChange":"Search for user before password change",
"ldapGroupAttributeName":"Atributo objetivo",
"ldapGroupAttributeNameGroup":"Group source attribute",
"ldapGroupAttributeNameSearch":"Atributos buscados",

View File

@ -434,6 +434,7 @@
"ldapExportedVars":"Variables exportées",
"ldapFilters":"Filtres",
"LDAPFilter":"Filtre par défaut",
"ldapGetUserBeforePasswordChange":"Rechercher l'utilisateur avant le changement de mot de passe",
"ldapGroupAttributeName":"Attribut cible",
"ldapGroupAttributeNameGroup":"Attribut source groupe",
"ldapGroupAttributeNameSearch":"Attributs recherchés",

View File

@ -434,6 +434,7 @@
"ldapExportedVars":"Variabili esportate",
"ldapFilters":"Filtri",
"LDAPFilter":"Filtro predefinito",
"ldapGetUserBeforePasswordChange":"Search for user before password change",
"ldapGroupAttributeName":"Attributo target",
"ldapGroupAttributeNameGroup":"Attributo del gruppo sorgente",
"ldapGroupAttributeNameSearch":"Attributi ricercati",

View File

@ -434,6 +434,7 @@
"ldapExportedVars":"Wyeksportowane zmienne",
"ldapFilters":"Filtry",
"LDAPFilter":"Domyślny filtr",
"ldapGetUserBeforePasswordChange":"Search for user before password change",
"ldapGroupAttributeName":"Atrybut docelowy",
"ldapGroupAttributeNameGroup":"Atrybut źródła grupy",
"ldapGroupAttributeNameSearch":"Szukane atrybuty",

View File

@ -434,6 +434,7 @@
"ldapExportedVars":"Dışa aktarılan değişkenler",
"ldapFilters":"Filtreler",
"LDAPFilter":"Varsayılan filtre",
"ldapGetUserBeforePasswordChange":"Search for user before password change",
"ldapGroupAttributeName":"Hedef nitelik",
"ldapGroupAttributeNameGroup":"Grup kaynağı niteliği",
"ldapGroupAttributeNameSearch":"Aranan nitelikler",

View File

@ -434,6 +434,7 @@
"ldapExportedVars":"Biến đã được xuất",
"ldapFilters":"Bộ lọc",
"LDAPFilter":"Bộ lọc mặc định",
"ldapGetUserBeforePasswordChange":"Search for user before password change",
"ldapGroupAttributeName":"Thuộc tính đích",
"ldapGroupAttributeNameGroup":"Thuộc tính nguồn nhóm",
"ldapGroupAttributeNameSearch":"Thuộc tính đã tìm kiếm",

View File

@ -434,6 +434,7 @@
"ldapExportedVars":"Exported variables",
"ldapFilters":"Filters",
"LDAPFilter":"Default filter",
"ldapGetUserBeforePasswordChange":"Search for user before password change",
"ldapGroupAttributeName":"Target attribute",
"ldapGroupAttributeNameGroup":"Group source attribute",
"ldapGroupAttributeNameSearch":"Searched attributes",

View File

@ -434,6 +434,7 @@
"ldapExportedVars":"已匯出的變數",
"ldapFilters":"過濾器",
"LDAPFilter":"預設過濾器",
"ldapGetUserBeforePasswordChange":"Search for user before password change",
"ldapGroupAttributeName":"目標屬性",
"ldapGroupAttributeNameGroup":"群組來源屬性",
"ldapGroupAttributeNameSearch":"已搜尋的屬性",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long