Skip to content
Snippets Groups Projects
Unverified Commit f9308cfe authored by Jean-Paul Calderone's avatar Jean-Paul Calderone
Browse files

Voucher must be 44 bytes of urlsafe base64

parent 4fec9a38
No related branches found
No related tags found
1 merge request!90Enforce model constraints
...@@ -49,6 +49,10 @@ from twisted.python.filepath import ( ...@@ -49,6 +49,10 @@ from twisted.python.filepath import (
FilePath, FilePath,
) )
from ._base64 import (
urlsafe_b64decode,
)
from .storage_common import ( from .storage_common import (
BYTES_PER_PASS, BYTES_PER_PASS,
required_passes, required_passes,
...@@ -796,7 +800,13 @@ class Voucher(object): ...@@ -796,7 +800,13 @@ class Voucher(object):
this voucher if it has been redeemed, ``None`` if it has not been this voucher if it has been redeemed, ``None`` if it has not been
redeemed. redeemed.
""" """
number = attr.ib() number = attr.ib(
validator=attr.validators.and_(
attr.validators.instance_of(unicode),
is_base64_encoded(urlsafe_b64decode),
has_length(44),
),
)
created = attr.ib( created = attr.ib(
default=None, default=None,
validator=attr.validators.optional(attr.validators.instance_of(datetime)), validator=attr.validators.optional(attr.validators.instance_of(datetime)),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment