diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_password.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_password.docbook
index 967cf508..c4f54df4 100644
--- a/doc/conf/LSattribute/LSattr_html/LSattr_html_password.docbook
+++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_password.docbook
@@ -19,6 +19,9 @@
// d'apparitions égal à 1
...
),
+ 'use_pwgen' => [booléen], // Utiliser pwgen pour la génération du mot de passe
+ 'pwgen_path' => "/path/to/pwgen",
+ 'pwgen_opts' => "[options à passer à pwgen]",
'verify' => [booléen], // Activation de l'outil de vérification du mot de passe
'viewHash' => [booléen], // Activation de l'outil de visualisation du mot de passe haché
'mail' => array( // Configuration de l'envoi du mot de passe par mail
@@ -84,6 +87,29 @@
+
+ use_pwgen
+
+ Booléen définissant si la commande pwgen doit être
+ utilisé pour générer le mot de passe.
+
+
+
+
+ pwgen_path
+
+ Chemin d'accès au binaire pwgen.
+ (Par défaut : pwgen).
+
+
+
+
+ pwgen_opts
+
+ Options à passer à la commande pwgen.
+
+
+
verify
diff --git a/public_html/includes/class/class.LSformElement_password.php b/public_html/includes/class/class.LSformElement_password.php
index 23ac33a6..d810a61c 100644
--- a/public_html/includes/class/class.LSformElement_password.php
+++ b/public_html/includes/class/class.LSformElement_password.php
@@ -165,6 +165,20 @@ class LSformElement_password extends LSformElement {
}
function generatePassword($params=NULL) {
+ if ($params['html_options']['use_pwgen']) {
+ $args=(isset($params['html_options']['pwgen_opts'])?$params['html_options']['pwgen_opts']:'');
+ $len=(isset($params['html_options']['lenght'])?$params['html_options']['lenght']:8);
+ $bin=(isset($params['html_options']['pwgen_path'])?$params['html_options']['pwgen_path']:'pwgen');
+ $cmd="$bin ".escapeshellcmd($args)." $len 1";
+ exec($cmd,$ret,$retcode);
+ LSdebug("Generate password using pwgen. Cmd : '$cmd' / Return code : $retcode / Return : ".print_r($ret,1));
+ if ($retcode==0 && count($ret)>0) {
+ return $ret[0];
+ }
+ else {
+ LSerror :: addErrorCode('LSformElement_password_03');
+ }
+ }
return generatePassword($params['html_options']['chars'],$params['html_options']['lenght']);
}
@@ -329,5 +343,6 @@ _("LSformElement_password : No contact mail available to send password.")
LSerror :: defineError('LSformElement_password_02',
_("LSformElement_password : Contact mail invalid (%{mail}). Can't send password.")
);
-
-?>
+LSerror :: defineError('LSformElement_password_03',
+_("LSformElement_password : Fail to exec pwgen. Check it's correctly installed.")
+);