HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //lib/python3/dist-packages/postorius/forms/validators.py
import uuid

from django.core.exceptions import ValidationError
from django.core.validators import validate_email
from django.utils.translation import gettext_lazy as _


def validate_uuid_or_email(input_value):
    """Check if the value is a valid email or UUID.

    This is useful to determine if a given input is a user identifier in
    Mailman 3 API 3.1+, where, user identifiers are either UUID or email.

    :param input_value: The value to validate.
    :type input_value: str
    :returns: input_value
    :rtype: str
    :raises ValidationError: If the value is either a UUID, not an email.
    """

    try:
        validate_email(input_value)
    except ValidationError:
        is_email = False
    else:
        is_email = True

    is_uuid = False
    if not is_email:
        try:
            uuid.UUID(input_value)
        except ValueError:
            is_uuid = False
        else:
            is_uuid = True

    if not any([is_email, is_uuid]):
        raise ValidationError(
            _('Invalid: "{0}" should be either email or UUID').format(
                input_value
            ),
            params={'value': input_value},
            code='invalid',
        )
    return input_value