Pages: 1
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:
--- 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
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 :-)
Hors ligne
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
Pages: 1