annotate roundup/cgi/timestamp.py @ 6739:00fe67eb8a91

Update locations templates and locale files are stored Installing on a new ubuntu 22.04 venv at /tmp/roundup, I found the locale and template files installed under /tmp/roundup2/lib/python3.10/site-packages/usr/local/share which was unexpected. /tmp/roundup2/lib/python3.10/site-packages/tmp/roundup2/share would be expected. Why sys.prefix (/tmp/roundup2) was not being used but sys.base_prefix (/usr) and 'local' were added in I have no idea. In any case, updated admin and i18n code to find the files in this location. Suggested building a venv for installation with commands in installation.txt. Removed search for templates top level directory. Was used for the old location of the tracker templates pre-2009 when they were moved under share/roundup/templates. left print statemts for debugging directory search in admin templates. They are disabled by a variable set to False. At some point will add pragma's to admin to set debugging and other options see issue 2551103.
author John Rouillard <rouilj@ieee.org>
date Tue, 28 Jun 2022 23:16:47 -0400
parents 5ec3171580a6
children 07ce4e4110f5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5975
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
1 '''Set of functions of adding/checking timestamp to be used to limit
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
2 form submission for cgi actions.
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
3 '''
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
4
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
5 import time, struct, binascii, base64
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
6 from roundup.cgi.exceptions import FormError
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
7 from roundup.i18n import _
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
8 from roundup.anypy.strings import b2s, s2b
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
9
6045
5ec3171580a6 flake whitespace changes.
John Rouillard <rouilj@ieee.org>
parents: 5975
diff changeset
10
5975
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
11 def pack_timestamp():
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
12 return b2s(base64.b64encode(struct.pack("i", int(time.time()))).strip())
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
13
6045
5ec3171580a6 flake whitespace changes.
John Rouillard <rouilj@ieee.org>
parents: 5975
diff changeset
14
5975
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
15 def unpack_timestamp(s):
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
16 try:
6045
5ec3171580a6 flake whitespace changes.
John Rouillard <rouilj@ieee.org>
parents: 5975
diff changeset
17 timestamp = struct.unpack("i", base64.b64decode(s2b(s)))[0]
5ec3171580a6 flake whitespace changes.
John Rouillard <rouilj@ieee.org>
parents: 5975
diff changeset
18 except (struct.error, binascii.Error, TypeError):
5975
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
19 raise FormError(_("Form is corrupted."))
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
20 return timestamp
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
21
6045
5ec3171580a6 flake whitespace changes.
John Rouillard <rouilj@ieee.org>
parents: 5975
diff changeset
22
5975
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
23 class Timestamped:
6045
5ec3171580a6 flake whitespace changes.
John Rouillard <rouilj@ieee.org>
parents: 5975
diff changeset
24 def timecheck(self, field, delay):
5975
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
25 try:
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
26 created = unpack_timestamp(self.form[field].value)
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
27 except KeyError:
6045
5ec3171580a6 flake whitespace changes.
John Rouillard <rouilj@ieee.org>
parents: 5975
diff changeset
28 raise FormError(_("Form is corrupted, missing: %s." % field))
5975
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
29 if time.time() - created < delay:
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
30 raise FormError(_("Responding to form too quickly."))
59842a3e8108 issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
31 return True

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