password validation and exception

manzilcheck
PANDACUSHION 6 months ago
parent 9bf4939674
commit ef9d32cda5
  1. 50
      backend/utils/utils.py

@ -31,3 +31,53 @@ def is_valid_email(email):
return True return True
else: else:
return False return False
def password_check(passwd: str) -> bool:
special_symbol_pattern = r'[$@#%]'
upper_case_pattern = r'[A-Z]'
lower_case_pattern = r'[a-z]'
digit_pattern = r'[0-9]'
if len(passwd) < 6:
raise PasswordLengthMinException('Password length should be at least 6 characters.')
elif len(passwd) > 20:
raise PasswordLengthMaxException('Password length should not be greater than 20 characters.')
if not re.search(digit_pattern, passwd):
raise PasswordNumericException('Password should have at least one numeral.')
if not re.search(upper_case_pattern, passwd):
raise PasswordUppercaseException('Password should have at least one uppercase letter.')
if not re.search(lower_case_pattern, passwd):
raise PasswordLowercaseException('Password should have at least one lowercase letter.')
if not re.search(special_symbol_pattern, passwd):
raise PasswordSpecialSymbolException('Password should have at least one of the symbols $@#%.')
return True
class PasswordLengthMinException(Exception):
def __init__(self, message):
self.message = message
class PasswordLengthMaxException(Exception):
def __init__(self, message):
self.message = message
class PasswordNumericException(Exception):
def __init__(self, message):
self.message = message
class PasswordUppercaseException(Exception):
def __init__(self, message):
self.message = message
class PasswordLowercaseException(Exception):
def __init__(self, message):
self.message = message
class PasswordSpecialSymbolException(Exception):
def __init__(self, message):
self.message = message

Loading…
Cancel
Save