HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
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")
            )