Mercurial > p > roundup > code
view website/issues/extensions/timestamp.py @ 7383:0645e3bdd5a3
Document three commented out attempts at full bleed code examples
None of them work. Documenting what has been tried so somebody can
benefit from the work on the next attempt to do it.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Mon, 22 May 2023 21:51:14 -0400 |
| parents | 35ea9b1efc14 |
| children |
line wrap: on
line source
import time, struct, base64 from roundup.cgi.actions import RegisterAction from roundup.cgi.exceptions import * def timestamp(): return base64.encodestring(struct.pack("i", time.time())).strip() def unpack_timestamp(s): return struct.unpack("i",base64.decodestring(s))[0] class Timestamped: def check(self): try: created = unpack_timestamp(self.form['opaque'].value) except KeyError: raise FormError("somebody tampered with the form") if time.time() - created < 4: raise FormError("responding to the form too quickly") return True class TimestampedRegister(Timestamped, RegisterAction): def permission(self): self.check() RegisterAction.permission(self) def init(instance): instance.registerUtil('timestamp', timestamp) instance.registerAction('register', TimestampedRegister)
