Moved check of generated password into separate function
This commit is contained in:
parent
d5f3708c50
commit
d68a7bb6e8
@ -109,17 +109,23 @@ def check_account(name: str, login: str, passwd: str) -> bool:
|
|||||||
return check_account_name(name) and check_login(login) and check_passwd(passwd)
|
return check_account_name(name) and check_login(login) and check_passwd(passwd)
|
||||||
|
|
||||||
|
|
||||||
|
def _check_gened_password(passwd: str, /) -> bool:
|
||||||
|
"""Retuns true if generated password is valid,
|
||||||
|
false otherwise.
|
||||||
|
Password is valid if there is at least one lowercase character,
|
||||||
|
uppercase character and one punctuation character"""
|
||||||
|
return (
|
||||||
|
any(c.islower() for c in passwd)
|
||||||
|
and any(c.isupper() for c in passwd)
|
||||||
|
and any(c.isdigit() for c in passwd)
|
||||||
|
and any(c in PUNCTUATION for c in passwd)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def gen_passwd() -> str:
|
def gen_passwd() -> str:
|
||||||
"""Generates password of length 32"""
|
"""Generates password of length 32"""
|
||||||
choices = SystemRandom().choices
|
choices = SystemRandom().choices
|
||||||
while True:
|
while True:
|
||||||
passwd = "".join(choices(PASSWORD_CHARS, k=32))
|
passwd = "".join(choices(PASSWORD_CHARS, k=32))
|
||||||
# If there is at least one lowercase character, uppercase character
|
if _check_gened_password(passwd):
|
||||||
# and one punctuation character
|
|
||||||
if (
|
|
||||||
any(c.islower() for c in passwd)
|
|
||||||
and any(c.isupper() for c in passwd)
|
|
||||||
and any(c.isdigit() for c in passwd)
|
|
||||||
and any(c in PUNCTUATION for c in passwd)
|
|
||||||
):
|
|
||||||
return passwd
|
return passwd
|
||||||
|
Reference in New Issue
Block a user