Mercurial > p > roundup > code
view website/issues/extensions/timestamp.py @ 8323:32a57cde072f
chore(ci): issue2551368 use new gpg for all releases.
I was the new version only for 3.10 and newer running on ubuntu 24.04.
Paul said it should work on 3.7 and 3.8 which runn on unbuntu 22.04.
So enable it and see if it works.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 04 Jun 2025 19:20:27 -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)
