diff --git a/i18n/en.yml b/i18n/en.yml index e4e8e94..6eecd3c 100644 --- a/i18n/en.yml +++ b/i18n/en.yml @@ -35,7 +35,7 @@ en: import: "Import item since a CSV file" force: "Force an action" format: "Change the display items format by an alternative format" - generate_password: "Generate a random password (default 8 characters, max 63 characters)" + generate_password: "Generate a random password (default 8 characters)" help: "Show this help message" form: add: diff --git a/i18n/fr.yml b/i18n/fr.yml index 0447f42..ba433fb 100644 --- a/i18n/fr.yml +++ b/i18n/fr.yml @@ -35,7 +35,7 @@ fr: import: "Importe des éléments depuis un fichier au format CSV" force: "Force une action, l'action ne demandera pas de confirmation" format: "Change le format d'affichage des éléments par un alternatif" - generate_password: "Génére un mot de passe aléatoire (défaut 8 caractères, max 63 caractères)" + generate_password: "Génére un mot de passe aléatoire (défaut 8 caractères)" help: "Affiche ce message d'aide" form: add: diff --git a/lib/MPW.rb b/lib/MPW.rb index d89ab29..e38ec0a 100644 --- a/lib/MPW.rb +++ b/lib/MPW.rb @@ -360,9 +360,18 @@ class MPW def self.generatePassword(length=8) if length.to_i <= 0 length = 8 + else + length = length.to_i end - return ([*('A'..'Z'),*('a'..'z'),*('0'..'9')]).sample(length.to_i).join + result = '' + while length > 62 do + result << ([*('A'..'Z'),*('a'..'z'),*('0'..'9')]).sample(62).join + length -= 62 + end + result << ([*('A'..'Z'),*('a'..'z'),*('0'..'9')]).sample(length).join + + return result #return ([*('A'..'Z'),*('a'..'z'),*('0'..'9')]-%w(0 1 I O l i o)).sample(length).join end