Mercurial > p > roundup > code
view roundup/cgi/timestamp.py @ 6632:e7143e4f6753
try to update to python 3.10.4 from 3.10.0 and try 3.11
Travis ci doesn't seem to tell us what python versions are
supported. The one form that is supposed to show that doesn't work for
me. Also it looks like nightly is suck at 3.10.0a5+ which isn't
nightly.
python 3.10.4 is released and current. 3.11 is pre-release/nightly so
trying it to replace broken nightly.
These upgrades may need to be reverted if invalid.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 16 Apr 2022 17:04:20 -0400 |
| parents | 5ec3171580a6 |
| children | 07ce4e4110f5 |
line wrap: on
line source
'''Set of functions of adding/checking timestamp to be used to limit form submission for cgi actions. ''' import time, struct, binascii, base64 from roundup.cgi.exceptions import FormError from roundup.i18n import _ from roundup.anypy.strings import b2s, s2b def pack_timestamp(): return b2s(base64.b64encode(struct.pack("i", int(time.time()))).strip()) def unpack_timestamp(s): try: timestamp = struct.unpack("i", base64.b64decode(s2b(s)))[0] except (struct.error, binascii.Error, TypeError): raise FormError(_("Form is corrupted.")) return timestamp class Timestamped: def timecheck(self, field, delay): try: created = unpack_timestamp(self.form[field].value) except KeyError: raise FormError(_("Form is corrupted, missing: %s." % field)) if time.time() - created < delay: raise FormError(_("Responding to form too quickly.")) return True
