Mercurial > p > roundup > code
view website/issues/extensions/timestamp.py @ 4632:4f25640b5521
Unified all copies of detectors/userauditor.py
The only functional change for the minimal and classic template is that the
error message for invalid addresses now contains the address that caused the
error. For the devel and website trackers the print command probably used
while debugging was removed. Everything else is comment and vim modeline.
| author | Thomas Arendsen Hein <thomas@intevation.de> |
|---|---|
| date | Fri, 01 Jun 2012 17:25:45 +0200 |
| parents | c2d0d3e9099d |
| children | 35ea9b1efc14 |
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)
