• last updated 11 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Baseline test of captcha robustness: challenge the captcha using tesseract, also applying basic normalizations

Fail when no value is specified

Fix tests according to new behavior

Improve behavior: invalidate the captcha when the check fails, cleanup expired captcha also when a new one is generated

Test newly introduced api

file captcha-procs.tcl was initially added on branch oacs-5-10.

    • -0
    • +0
    ./test/captcha-procs.tcl
A simple image captcha implementation:

a random text is converted to a distorted image, its checksum, together with the expected text are stored in a lookup table. Upon validation, the text input by the user is matched against the checksum to determine if the captcha is correct.

Plan is to use it downstream on certain publicly available contact forms.

  1. … 8 more files in changeset.
file captcha-procs.tcl was initially added on branch oacs-5-10.

Make sure widget variable exists for the element

Add multiselect to the widgets we check

Restrict new widget validation of options to select and radio, not every widget must restrict the values to the options property

Implement a hook for widget-specific validation and use it to enforce that widgets that specify a list of options must return a value that belongs to those options

Inform widget: do not render any input element alongside the form value

improve spelling

validate format of richtext field always

Smartify idioms

Fix typo

simplify idioms

Deprecate template::util::list_opts: it can be replaced by trivial tcl idioms

Streamline ns_set idioms

Deprecate template::util::set_to_vars: it can be replaced with trivial idioms

Deprecate template::util::set_to_list: this proc can be replaced with trivial ns_set and tcl idioms

Replace trivial api

Streamline ns_set idioms

  1. … 1 more file in changeset.
Uniform documentation style

Normalize indentation

Streamline ns_set idioms

Deprecate util_ns_set_to_list: ns_set array is an equivalent oneliner

  1. … 5 more files in changeset.
support multi-line messages by using template literals

template literals are available since ES6 (2015)

fix spurious colons

  1. … 4 more files in changeset.