Mercurial > p > roundup > code
view roundup/cgi/timestamp.py @ 6581:b5fb268b7f04
Docker installation doc improved and switchable debugging
Using a Docker container, login was failing with no error or ok
message. After a lengthy debugging session on irc with alxjsn
assisted by taggnostr realised it was the web setting in config.ini.
Install doc for docker now mentions that the web setting must end in
/issues/.
SHELL_DEBUG environment variable enabled set -xv in startp script.a
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Tue, 04 Jan 2022 16:31:04 -0500 |
| 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
