30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
from email_validator import validate_email # type: ignore
|
|
import email_validator
|
|
import json
|
|
|
|
from add_user import add_keycloak_user
|
|
|
|
def process_emails(
|
|
mail_address: str,
|
|
blocked_user_file: str = "blocked_users.json",
|
|
) -> tuple[bool, str]:
|
|
|
|
with open(blocked_user_file, "r") as file:
|
|
blocked_users: dict = json.load(file)
|
|
|
|
if (mail_address == "") or (mail_address is None):
|
|
return False, "eMail address empty or missing."
|
|
try:
|
|
emailinfo = validate_email(mail_address, check_deliverability=False)
|
|
mail_address = emailinfo.normalized
|
|
except email_validator.exceptions_types.EmailSyntaxError:
|
|
return False, f"{mail_address} -- eMail address failed validate_email (EmailSyntaxError)"
|
|
except email_validator.exceptions_types.EmailNotValidError:
|
|
return False, f"{mail_address} -- eMail address failed validate_email (EmailNotValidError)"
|
|
|
|
for blocked_user in blocked_users["blocked_users"]:
|
|
if mail_address == blocked_user:
|
|
return False, f"{mail_address} -- eMail address is listed as blocked."
|
|
|
|
return add_keycloak_user(mail_address)
|
|
|