#1 2012-10-29 16:20:01

lildadou
Membre
2012-08-10
38

[proposition][code][JS] Générateur de passe intégré

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 abricocotier.fr. 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>

Hors ligne

#2 2012-10-29 17:39:10

Gotcha
Equipe Piwigo
Pierrelatte (26)
2007-03-14
13324

Re: [proposition][code][JS] Générateur de passe intégré

Bonjour,

Merci pour le partage.
Il y aussi un plugin "Event Cats" qui dispose d'une fonction permettant de générer des mots de passe. Peux-être que vous arriveriez à en faire un plugin :-)


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

#3 2012-11-11 16:53:22

lildadou
Membre
2012-08-10
38

Re: [proposition][code][JS] Générateur de passe intégré

Désolé, je fonctionne un peu sur le même principe que vous : quand j'ai besoin de quelque chose j'essaie de le faire et je partage. :)

Hors ligne

#4 2012-11-11 17:19:49

flop25
Équipe Piwigo
2006-07-06
6357

Re: [proposition][code][JS] Générateur de passe intégré

Pour espérer voir votre demande aboutir, ouvrez un ticket dans notre bug tracker. http://piwigo.org/bugs

Dernière modification par flop25 (2012-11-11 17:20:11)

Hors ligne

Pied de page des forums

Propulsé par FluxBB