From f2697b6c92383d8dbcf322eaf573e70017dba2df Mon Sep 17 00:00:00 2001 From: "rdzantoine.pro@gmail.com" Date: Fri, 1 Nov 2024 15:40:25 +0100 Subject: [PATCH] add special characters functionnality to random password generator function make_password --- modoboa/admin/lib.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modoboa/admin/lib.py b/modoboa/admin/lib.py index 7d75b1725..8f334a3a4 100644 --- a/modoboa/admin/lib.py +++ b/modoboa/admin/lib.py @@ -293,10 +293,13 @@ def domain_has_authorized_mx(name): def make_password(): """Create a random password.""" length = int(param_tools.get_global_parameter("random_password_length", app="core")) - while True: + allow_special_characters = bool(param_tools.get_global_parameter("allow_special_characters", app="core")) + possible_chars = string.ascii_letters + string.digits + for i in range(10): # limit tries + if allow_special_characters: # add special characters in random passwd + possible_chars += string.punctuation password = "".join( - random.SystemRandom().choice(string.ascii_letters + string.digits) - for _ in range(length) + random.SystemRandom().choice(possible_chars) for _ in range(length) ) try: password_validation.validate_password(password)