annotate doc/index.txt @ 8411:ef1ea918b07a reauth-confirm_id

feat(security): Add user confirmation/reauth for sensitive changes Auditors can raise Reauth(reason) exception to require the user to enter a token (e.g. account password) to verify the user is performing the change. Naming is subject to change. actions.py: New ReauthAction class handler and verifyPassword() method for overriding if needed. client.py: Handle Reauth exception by calling Client:reauth() method. Default client:reauth method. Add 'reauth' action declaration. exceptions.py: Define and document Reauth exception as a subclass of RoundupCGIException. templating.py: Define method utils.embed_form_fields(). The original form making a change to the database has a lot of form fields. These need to be resubmitted to Roundup as part of the form submission that verifies the user's password. This method turns all non file form fields into type=hidden inputs. It escapes the names and values to prevent XSS. For file form fields, it base64 encodes the contents and puts them in hidden pre blocks. The pre blocks have data attributes for the filename, filetype and the original field name. (Note the original field name is not used.) This stops the file content data (maybe binary e.g. jpegs) from breaking the html page. The reauth template runs JavaScript that turns the encoded data inside the pre tags back into a file. Then it adds a multiple file input control to the page and attaches all the files to it. This file input is submitted with the rest of the fields. _generic.reauth.html (multiple tracker templates): Generates a form with id=reauth_form to: display any message from the Reauth exception to the user (e.g. why user is asked to auth). get the user's password submit the form embed all the form data that triggered the reauth recreate any file data that was submitted as part of the form and generate a new file input to push the data to the back end It has the JavaScript routine (as an IIFE) that regenerates a file input without user intervention. All the TAL based tracker templates use the same form. There is also one for the jinja2 template. The JavaScript for both is the same. reference.txt: document embed_form_fields utility method. upgrading.txt: initial upgrading docs. TODO: Finalize naming. I am leaning toward ConfirmID rather than Reauth. Still looking for a standard name for this workflow. Externalize the javascript in _generic.reauth.html to a seperate file and use utils.readfile() to embed it or change the script to load it from a @@file url. Clean up upgrading.txt with just steps to implement and less feature detail/internals. Document internals/troubleshooting in reference.txt. Add tests using live server.
author John Rouillard <rouilj@ieee.org>
date Mon, 11 Aug 2025 14:01:12 -0400
parents 3f43db05aa11
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6586
24e2eeb2ed9a Add meta description to some doc pages.
John Rouillard <rouilj@ieee.org>
parents: 6265
diff changeset
1 .. meta::
6774
e7b4ad2c57ac landmarks, skiplink, remove bad attrs, autocomplete search
John Rouillard <rouilj@ieee.org>
parents: 6586
diff changeset
2 :description:
6586
24e2eeb2ed9a Add meta description to some doc pages.
John Rouillard <rouilj@ieee.org>
parents: 6265
diff changeset
3 Table of contents for documentation on the Roundup Issue Tracker.
24e2eeb2ed9a Add meta description to some doc pages.
John Rouillard <rouilj@ieee.org>
parents: 6265
diff changeset
4
686
c52122f38c9b Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents: 659
diff changeset
5 =======================================================
c52122f38c9b Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents: 659
diff changeset
6 Roundup: an Issue-Tracking System for Knowledge Workers
c52122f38c9b Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents: 659
diff changeset
7 =======================================================
659
e429649ed124 More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8
6265
b2eb59ada444 Replace http:....roundup-tracker.org with https. Also fix wiki links.
John Rouillard <rouilj@ieee.org>
parents: 6160
diff changeset
9 For how to contact the community see https://www.roundup-tracker.org .
4610
e793eafba69c Documentation: Synced the doc/index.txt and docs.txt. Removed outdated contact.txt.
Bernhard Reiter <bernhard@intevation.de>
parents: 4440
diff changeset
10
659
e429649ed124 More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 Contents
e429649ed124 More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 ========
e429649ed124 More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13
4033
bca7c59ac400 Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents: 4000
diff changeset
14 .. toctree::
bca7c59ac400 Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents: 4000
diff changeset
15 :maxdepth: 2
8315
3f43db05aa11 docs: use bulleted list for deprecation; pydoc for shared dir
John Rouillard <rouilj@ieee.org>
parents: 7919
diff changeset
16 :includehidden:
659
e429649ed124 More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17
4033
bca7c59ac400 Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents: 4000
diff changeset
18 features
7331
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
19
4033
bca7c59ac400 Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents: 4000
diff changeset
20 installation
bca7c59ac400 Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents: 4000
diff changeset
21 upgrading
7092
1836e0ef7751 Add new security.txt
John Rouillard <rouilj@ieee.org>
parents: 6774
diff changeset
22 security
4033
bca7c59ac400 Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents: 4000
diff changeset
23 FAQ
7331
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
24
4033
bca7c59ac400 Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents: 4000
diff changeset
25 user_guide
7331
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
26
7499
a072331c843b Change customizing to customising in all variants.
John Rouillard <rouilj@ieee.org>
parents: 7331
diff changeset
27 customising <customizing.txt>
7331
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
28 rest
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
29 xmlrpc
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
30 reference
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
31 glossary
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
32
4033
bca7c59ac400 Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents: 4000
diff changeset
33 admin_guide
7919
e3b34d02c61a doc: add html versions of man pages
John Rouillard <rouilj@ieee.org>
parents: 7499
diff changeset
34 man pages <man_pages>
7331
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
35 license
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
36 acknowledgements
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
37
7283
1a0548b60c6b Update document TOC with security-history, reference, upgrading-history
John Rouillard <rouilj@ieee.org>
parents: 7100
diff changeset
38 upgrading-history
7331
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
39
7100
8a267e9827cc Integrate security.txt with website docs. Align TOCs.
John Rouillard <rouilj@ieee.org>
parents: 7096
diff changeset
40 tracker_templates
7331
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
41
7100
8a267e9827cc Integrate security.txt with website docs. Align TOCs.
John Rouillard <rouilj@ieee.org>
parents: 7096
diff changeset
42 Design Overview <overview>
4890
609edf9de0a5 docs: Remove one nesting level from ToC on subpages
anatoly techtonik <techtonik@gmail.com>
parents: 4746
diff changeset
43 Design (original) <design>
7919
e3b34d02c61a doc: add html versions of man pages
John Rouillard <rouilj@ieee.org>
parents: 7499
diff changeset
44 Software Carpentry and Papers <sc>
7331
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
45
4033
bca7c59ac400 Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents: 4000
diff changeset
46 developers
7331
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
47
5078
487dc55e3c5e issue2550907 Fix errors when creating documentation. Work done by
John Rouillard <rouilj@ieee.org>
parents: 4890
diff changeset
48 Notes about the MySQL Database backend <mysql>
487dc55e3c5e issue2550907 Fix errors when creating documentation. Work done by
John Rouillard <rouilj@ieee.org>
parents: 4890
diff changeset
49 Notes about the PostgreSQL Database backend <postgresql>
7331
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
50
5078
487dc55e3c5e issue2550907 Fix errors when creating documentation. Work done by
John Rouillard <rouilj@ieee.org>
parents: 4890
diff changeset
51 Richard Jones implementation notes <implementation>
7331
24101267e3fb Reorder docs to match web site docs.
John Rouillard <rouilj@ieee.org>
parents: 7283
diff changeset
52 security-history
5925
7cf8f6389aad issue2551002: Add reference to wiki ReleaseErrata page to docs.
John Rouillard <rouilj@ieee.org>
parents: 5695
diff changeset
53
8315
3f43db05aa11 docs: use bulleted list for deprecation; pydoc for shared dir
John Rouillard <rouilj@ieee.org>
parents: 7919
diff changeset
54 .. toctree::
3f43db05aa11 docs: use bulleted list for deprecation; pydoc for shared dir
John Rouillard <rouilj@ieee.org>
parents: 7919
diff changeset
55 :hidden:
3f43db05aa11 docs: use bulleted list for deprecation; pydoc for shared dir
John Rouillard <rouilj@ieee.org>
parents: 7919
diff changeset
56
3f43db05aa11 docs: use bulleted list for deprecation; pydoc for shared dir
John Rouillard <rouilj@ieee.org>
parents: 7919
diff changeset
57 pydoc
3f43db05aa11 docs: use bulleted list for deprecation; pydoc for shared dir
John Rouillard <rouilj@ieee.org>
parents: 7919
diff changeset
58
5925
7cf8f6389aad issue2551002: Add reference to wiki ReleaseErrata page to docs.
John Rouillard <rouilj@ieee.org>
parents: 5695
diff changeset
59 See: https://wiki.roundup-tracker.org/ReleaseErrata for fixes to
7cf8f6389aad issue2551002: Add reference to wiki ReleaseErrata page to docs.
John Rouillard <rouilj@ieee.org>
parents: 5695
diff changeset
60 documentation.
6160
9619d64c0351 Doc updates for customizing.txt, start of index generation
John Rouillard <rouilj@ieee.org>
parents: 5925
diff changeset
61
9619d64c0351 Doc updates for customizing.txt, start of index generation
John Rouillard <rouilj@ieee.org>
parents: 5925
diff changeset
62 Indices
9619d64c0351 Doc updates for customizing.txt, start of index generation
John Rouillard <rouilj@ieee.org>
parents: 5925
diff changeset
63 =======
9619d64c0351 Doc updates for customizing.txt, start of index generation
John Rouillard <rouilj@ieee.org>
parents: 5925
diff changeset
64
9619d64c0351 Doc updates for customizing.txt, start of index generation
John Rouillard <rouilj@ieee.org>
parents: 5925
diff changeset
65 * :ref:`genindex`

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