File: //home/arjun/projects/aigenerator/venv/lib/python3.12/site-packages/social_core/pipeline/mail.py
from ..exceptions import InvalidEmail
from .partial import partial
@partial
def mail_validation(backend, details, is_new=False, *args, **kwargs):
requires_validation = backend.REQUIRES_EMAIL_VALIDATION or backend.setting(
"FORCE_EMAIL_VALIDATION", False
)
send_validation = details.get("email") and (
is_new or backend.setting("PASSWORDLESS", False)
)
if requires_validation and send_validation:
data = backend.strategy.request_data()
if "verification_code" in data:
backend.strategy.session_pop("email_validation_address")
if not backend.strategy.validate_email(
details["email"], data["verification_code"]
):
raise InvalidEmail(backend)
else:
current_partial = kwargs.get("current_partial")
backend.strategy.send_email_validation(
backend, details["email"], current_partial.token
)
backend.strategy.session_set("email_validation_address", details["email"])
return backend.strategy.redirect(
backend.strategy.setting("EMAIL_VALIDATION_URL")
)