view website/issues/extensions/timestamp.py @ 5866:f6bd55b37e9f

wiki: improve how styles are loaded * Change loading of the main site's style.css to use the file provided by the tracker, because it is served via https. This prepares the move of the wiki to a new hoster, as style.css does not have to served from there. It has the drawback that the tracker site has to be up for the wiki style to work.
author Bernhard Reiter <bernhard@intevation.de>
date Mon, 26 Aug 2019 17:18:38 +0200
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)

Roundup Issue Tracker: http://roundup-tracker.org/