Moved utils into src directory, moved most of the functions from it into separate files
This commit is contained in:
42
src/account_checks.py
Normal file
42
src/account_checks.py
Normal file
@ -0,0 +1,42 @@
|
||||
import string
|
||||
|
||||
FORBIDDEN_CHARS = frozenset("`\n")
|
||||
PUNCTUATION = frozenset(string.punctuation).difference(FORBIDDEN_CHARS)
|
||||
|
||||
|
||||
def _base_check(val: str, /) -> bool:
|
||||
"Returns false if finds new lines or backtick (`)"
|
||||
return not any(i in FORBIDDEN_CHARS for i in val)
|
||||
|
||||
|
||||
def check_account_name(name: str) -> bool:
|
||||
"Returns true if account name is valid"
|
||||
return _base_check(name)
|
||||
|
||||
|
||||
def check_login(login: str) -> bool:
|
||||
"Returns true if login is valid"
|
||||
return _base_check(login)
|
||||
|
||||
|
||||
def check_password(passwd: str) -> bool:
|
||||
"Returns true if password is valid"
|
||||
return _base_check(passwd)
|
||||
|
||||
|
||||
def check_account(name: str, login: str, passwd: str) -> bool:
|
||||
"""Runs checks for account name, login and password"""
|
||||
return check_account_name(name) and check_login(login) and check_password(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)
|
||||
)
|
Reference in New Issue
Block a user