mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-22 18:09:06 +01:00
LSformRule :: password : Added minValidRegex parameter and use preg_match() function instead of deprecated ereg() function
This commit is contained in:
parent
6bf08b81a4
commit
5efa437612
3 changed files with 53 additions and 9 deletions
|
@ -31,11 +31,23 @@
|
||||||
<term>regex</term>
|
<term>regex</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara>Expression(s) régulière(s) que doit respecter le mot de passe. Ce
|
<simpara>Expression(s) régulière(s) que doit respecter le mot de passe. Ce
|
||||||
paramètre peut être une expression régulière ou un tableau d'expressions
|
paramètre peut être une expression régulière au format
|
||||||
régulières.</simpara>
|
<ulink url='http://php.net/pcre.pattern'>PCRE</ulink> ou un tableau
|
||||||
|
d'expressions régulières.</simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>minValidRegex</term>
|
||||||
|
<listitem>
|
||||||
|
<simpara>Le nombre minimum d'expression régulière qui doivent être validées
|
||||||
|
pour que le mot de passe soit considéré comme correct. Ce paramètre est
|
||||||
|
optionnel, par défaut, toutes les expressions régulières doivent être
|
||||||
|
validées.</simpara>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
</sect4>
|
</sect4>
|
||||||
|
|
|
@ -513,7 +513,14 @@ $GLOBALS['LSobjects']['LSpeople'] = array (
|
||||||
'msg' => 'Your password must contain from 8 to 10 characters.',
|
'msg' => 'Your password must contain from 8 to 10 characters.',
|
||||||
'params' => array(
|
'params' => array(
|
||||||
'minLength' => 8,
|
'minLength' => 8,
|
||||||
'maxLength' => 10
|
'maxLength' => 10,
|
||||||
|
'regex' => array (
|
||||||
|
'/[A-Z]/',
|
||||||
|
'/[a-z]/',
|
||||||
|
'/[0-9]/',
|
||||||
|
'/[^A-Za-z0-9]/',
|
||||||
|
),
|
||||||
|
'minValidRegex' => 3
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
|
@ -37,6 +37,8 @@ class LSformRule_password extends LSformRule {
|
||||||
* - 'prohibitedValues' : Un tableau de valeurs interdites
|
* - 'prohibitedValues' : Un tableau de valeurs interdites
|
||||||
* - 'regex' : une ou plusieurs expressions régulières
|
* - 'regex' : une ou plusieurs expressions régulières
|
||||||
* devant matche
|
* devant matche
|
||||||
|
* - 'minValidRegex' : le nombre minimun d'expressions
|
||||||
|
* régulières à valider
|
||||||
* @param object $formElement L'objet formElement attaché
|
* @param object $formElement L'objet formElement attaché
|
||||||
*
|
*
|
||||||
* @return boolean true si la valeur est valide, false sinon
|
* @return boolean true si la valeur est valide, false sinon
|
||||||
|
@ -56,14 +58,30 @@ class LSformRule_password extends LSformRule {
|
||||||
if (!is_array($options['params']['regex'])) {
|
if (!is_array($options['params']['regex'])) {
|
||||||
$options['params']['regex']=array($options['params']['regex']);
|
$options['params']['regex']=array($options['params']['regex']);
|
||||||
}
|
}
|
||||||
foreach($options['params']['regex'] as $regex) {
|
if (isset($options['params']['minValidRegex'])) {
|
||||||
if (!ereg($regex,$value))
|
$options['params']['minValidRegex']=(int)$options['params']['minValidRegex'];
|
||||||
return;
|
if ($options['params']['minValidRegex']==0 || $options['params']['minValidRegex']>count($options['params']['regex'])) {
|
||||||
|
$options['params']['minValidRegex']=count($options['params']['regex']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
$options['params']['minValidRegex']=count($options['params']['regex']);
|
||||||
|
}
|
||||||
|
$valid=0;
|
||||||
|
foreach($options['params']['regex'] as $regex) {
|
||||||
|
if ($regex[0]!='/') {
|
||||||
|
LSerror :: addErrorCode('LSformRule_password_01');
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (preg_match($regex,$value))
|
||||||
|
$valid++;
|
||||||
|
}
|
||||||
|
if ($valid<$options['params']['minValidRegex'])
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(is_array($options['params']['prohibitedValues'])) {
|
if(isset($options['params']['prohibitedValues']) && is_array($options['params']['prohibitedValues'])) {
|
||||||
if (in_array($value,$options['params']['prohibitedValues']))
|
if (in_array($value,$options['params']['prohibitedValues']))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,4 +90,11 @@ class LSformRule_password extends LSformRule {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Error Codes
|
||||||
|
*/
|
||||||
|
LSerror :: defineError('LSformRule_password_01',
|
||||||
|
_("LSformRule_password : Invalid regex configured : %{regex}. You must use PCRE (begining by '/' caracter).")
|
||||||
|
);
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in a new issue