diff options
Diffstat (limited to 'src/mailman/rest/validator.py')
| -rw-r--r-- | src/mailman/rest/validator.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mailman/rest/validator.py b/src/mailman/rest/validator.py index d8297e519..cf32ca838 100644 --- a/src/mailman/rest/validator.py +++ b/src/mailman/rest/validator.py @@ -23,9 +23,13 @@ __metaclass__ = type __all__ = [ 'Validator', 'enum_validator', + 'subscriber_validator', ] +from uuid import UUID + + COMMASPACE = ', ' @@ -42,6 +46,17 @@ class enum_validator: return self._enum_class[enum_value] + + +def subscriber_validator(subscriber): + """Convert an email-or-int to an email-or-UUID.""" + try: + return UUID(int=int(subscriber)) + except ValueError: + return subscriber + + + class Validator: """A validator of parameter input.""" |
