MantisBT - Piwigo
View Issue Details
0002787Piwigousers & groupspublic2012.11.11 18:412015.07.06 12:15
lildadou 
plg 
normaltweakN/A
assignedopen 
2.4.5 
2.8.0beta1 
any
0002787: Générateur de mot de passe dans les formulaire de création
http://fr.piwigo.org/forum/viewtopic.php?pid=196059 [^]
No tags attached.
Issue History
2012.11.11 18:41lildadouNew Issue
2012.11.11 18:41lildadoubrowser => any
2012.11.11 18:43lildadouNote Added: 0006732
2015.07.06 12:15plgAssigned To => plg
2015.07.06 12:15plgStatusnew => assigned
2015.07.06 12:15plgTarget Version => 2.8.0beta1

Notes
(0006732)
lildadou   
2012.11.11 18:43   
Plop à tous,
je ne sais pas pour vous mais je suis toujours en manque d'inspiration lorsque je créer un nouvel utilisateur et que je me trouve face au champ "Mot de passe". Je dois souvent générer un mot de passe avec le trousseau de MacOS ou chercher un générateur côté client sur le Web quand je suis sur une machine Windows® pour en générer un.

Bref, tout ça pour dire que je trouve très utile ma petite modif du template d'origine pour générer un mot de passe simplement en cliquant à l'intérieur du champ. Le code JavaScript est pompé depuis [url=http://www.abricocotier.fr/12018-un-generateur-de-mots-de-passe-en-javascript [^]]abricocotier.fr[/url]. Je sais pas si le code est libre de droit.

Voici le diff:
[code]--- user_list.tpl.bak 2012-10-29 16:15:31.447316179 +0100
+++ user_list.tpl 2012-10-29 14:19:35.536823678 +0100
@@ -10,7 +10,7 @@
         <label>{'Password'|@translate} <input type="password" name="password"></label>
         <label>{'Confirm Password'|@translate} <input type="password" name="password_conf" id="password_conf"></label>
         {else}
- <label>{'Password'|@translate} <input type="text" name="password"></label>
+ <label>{'Password'|@translate} <input type="text" name="password" onclick="GeneratePassword(this)"></label>
         {/if}
         <label>{'Email address'|@translate} <input type="text" name="email"></label>
     <label>{'Send connection settings by email'|@translate} <input type="checkbox" name="send_password_by_mail" value="1" checked="checked"></label>
@@ -284,7 +284,56 @@
     }
     return true;
 }
-);{/literal}
+);
+
+function GeneratePassword(input) {
+ var length=21;
+ var sPassword = "";
+
+ var lowercase = true;
+ var uppercase = true;
+ var figures = true;
+ var punction = false;
+
+ for (i=1; i <= length; i++) {
+
+ numI = getRandomNum();
+ if ((punction == 0 && checkPunc(numI)) || (figures == 0 && checkFigures(numI)) ||(uppercase == 0 && checkUppercase(numI))) {
+ i -= 1;
+ } else {
+ sPassword = sPassword + String.fromCharCode(numI);
+ }
+ }
+ input.value=sPassword;
+ return true;
+}
+
+function getRandomNum() {
+ // between 0 - 1
+ var rndNum = Math.random()
+ // rndNum from 0 - 1000
+ rndNum = parseInt(rndNum * 1000);
+ // rndNum from 33 - 127
+ rndNum = (rndNum % 94) + 33;
+ return rndNum;
+}
+
+function checkPunc(num) {
+ if (((num >=33) && (num <=47)) || ((num >=58) && (num <=64))) return true;
+ if (((num >=91) && (num <=96)) || ((num >=123) && (num <=126))) return true;
+ return false;
+}
+
+function checkFigures(num) {
+ if ((num >=48) && (num <=57)) return true;
+ else return false;
+}
+
+function checkUppercase(num) {
+ if ((num >=65) && (num <=90)) return true;
+ else return false;
+}{/literal}
+
 // ]]>
 </script>[/code]