QZ Forms

The code is data

QZ Forms Login Process

Starting \ Input
State \ URI
/qz/login /qz/login/validate /qz/logout any other
no_session run setup_session
run req_login
session_no_login
loc logout loc logout loc logout
bad_session run close_session
run setup_session
run req_login
session_no_login
run close_session
loc logout
no_session
run close_session
run logout
no_session
run close_session
loc logout
no_session
session_no_login run req_login check form_tag
run validate
logged_in
or
close session, loc login
run logout loc login
logged_in run close_session
run setup_session
run login
logged_out
run close_session
loc logout
logged_out
(not in normal flow)
run logout
logged_out
run it
logged_out run close_sesson
run setup_session
run req_login
session_no_login
run close_sesson
loc logout
run close_sesson
loc logout
run close_sesson
loc logout
loc x
redirect to location x
run x
execute function x
no_session
no_session means a session key was not found in an incoming cookie or the session key found did not reference a valid session struct.
bad_session
bad_session is the extraordinary event that the integrity of the internal data structure for the session can not be afirmed.
session_no_login
session_no_login means a valid session was found but login credentials to Postgresql have not yet been presented.
logged in
logged out
logged in means PQstatus returns CONNECTION OK, otherwise logged out. Logged in and logged out are from Postgresql's perspective. When the session "is_logged_in" flag is false the state is session_no_login. State logged_out is not in the normal flow, but represents a session that lost its Postgreql connection.
run logout
logout will only remove a session in the extraordinary event that the session is corrupted. Normal flow is to change the "is_logged_in" flag to false but leave the session record in place.