Skip to content
Snippets Groups Projects
Commit 798de6b1 authored by enured's avatar enured
Browse files

B8891: Implemented feature for user given doNotLogColumn list in qfq config...

B8891: Implemented feature for user given doNotLogColumn list in qfq config and form parameter. Value of any column in list will logged be as '*hide in log*'. List default is 'password'.
parent df78d01b
No related branches found
No related tags found
3 merge requests!495New version 22.12.0,!478B8891: Implemented feature for user given doNotLogColumn list in qfq config...,!472B8891: Implemented feature for user given doNotLogColumn list in qfq config...
Pipeline #7860 failed
......@@ -514,6 +514,8 @@ Form.parameter
+-----------------------------+--------+----------------------------------------------------------------------------------------------------------+
| rememberLastPill | 0 / 1 | Overwrite default from :ref:`configuration`. On form load, bring last used pill to front |
+-----------------------------+--------+----------------------------------------------------------------------------------------------------------+
| doNotLogColumn | string | Overwrite default from :ref:`configuration` . Comma separated list possible. |
+-----------------------------+--------+----------------------------------------------------------------------------------------------------------+
* Example in field Form.parameter::
......
......@@ -656,6 +656,8 @@ Extension Manager: QFQ Configuration
+-----------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| rememberLastPill | 0 (off), 1 (on) | On form load, bring last used pill to front. Default is on. |
+-----------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| doNotLogColumn | password | Do not log column after form save. Default is password. |
+-----------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| **Form-Layout** |
+-----------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| labelAlign | left | Label align (left/center/right)/ Default: left. Will be inherited to Form. |
......
......@@ -750,6 +750,7 @@ const CSS_REQUIRED_LEFT = 'required-left';
//const SYSTEM_FORM_ELEMENT_FIELD = 'formElementField'; // Type: SANITIZE_ALNUMX / String. Fieldname of processed Formelement. Useful for error reporting.
const SYSTEM_QFQ_PROJECT_PATH = 'qfqProjectPath';
const SYSTEM_DO_NOT_LOG_COLUMN = 'doNotLogColumn';
const MODE_HTML = 'html';
const MODE_JSON = 'json';
......@@ -1154,6 +1155,7 @@ const CLIENT_REST_ID = '_id';
const CLIENT_REST_FORM = '_form';
const F_REMEMBER_LAST_PILL = SYSTEM_REMEMBER_LAST_PILL;
const F_DO_NOT_LOG_COLUMN = SYSTEM_DO_NOT_LOG_COLUMN;
// Form Columns: Only in form file
const F_FILE_FORM_ELEMENT = 'FormElement_ff'; // Key for FormElements array saved in Form File
......
......@@ -815,13 +815,30 @@ class QuickFormQuery {
$formData = $_POST;
unset($formData[CLIENT_SIP]);
$recordId = $this->store->getVar(SIP_RECORD_ID, STORE_SIP);
// Do not log specific columns
$recordIdPhrase = '-' . $recordId;
$doNotLogColumnList = $this->formSpec[F_DO_NOT_LOG_COLUMN];
if (!isset($doNotLogColumnList) || $doNotLogColumnList === '') {
$doNotLogColumnList = $this->store->getVar(SYSTEM_DO_NOT_LOG_COLUMN, STORE_SYSTEM);
}
if (isset($doNotLogColumnList) && $doNotLogColumnList != '') {
$doNotLogColumnListArray = explode(',', $doNotLogColumnList);
foreach ($doNotLogColumnListArray as $column) {
if (isset($formData[$column.$recordIdPhrase])) {
$formData[$column.$recordIdPhrase] = '*hide in log*';
}
}
}
$formData = json_encode($formData, JSON_UNESCAPED_UNICODE);
$clientIp = $_SERVER[CLIENT_REMOTE_ADDRESS] ?? '';
$userAgent = $_SERVER[CLIENT_HTTP_USER_AGENT] ?? '';
$sipData = json_encode($this->store->getStore(STORE_SIP), JSON_UNESCAPED_UNICODE);
$formId = $this->formSpec[F_ID];
$formName = $this->formSpec[F_NAME];
$recordId = $this->store->getVar(SIP_RECORD_ID, STORE_SIP);
$feUser = $this->store->getVar(TYPO3_FE_USER, STORE_TYPO3, SANITIZE_ALLOW_ALNUMX);
$pageId = $this->store->getVar(TYPO3_PAGE_ID, STORE_TYPO3, SANITIZE_ALLOW_ALNUMX);
$sessionId = session_id();
......
......@@ -500,6 +500,7 @@ class Config {
SYSTEM_DOCUMENTATION_QFQ => SYSTEM_DOCUMENTATION_QFQ_URL,
SYSTEM_ENTER_AS_SUBMIT => 1,
SYSTEM_REMEMBER_LAST_PILL => 1,
SYSTEM_DO_NOT_LOG_COLUMN => 'password',
SYSTEM_CMD_WKHTMLTOPDF => '/opt/wkhtmltox/bin/wkhtmltopdf',
SYSTEM_CMD_QFQPDF => '/opt/qfqpdf/qfqpdf',
......
......@@ -202,6 +202,8 @@ clearMe = 0
# cat=form-config/config; type=boolean; label=On form load, bring last used pill to front
rememberLastPill = 1
# cat=form-config/config; type=string; label=Do not log column:Default is 'password'. Comma separated more than one column possible.
doNotLogColumn =
# cat=form-layout/layout; type=string; label=FormElement label align:Default is 'left'. Possible values: 'left', 'center', 'right'.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment