Commit 7107191b authored by Marc Egger's avatar Marc Egger
Browse files

Merge remote-tracking branch 'origin/master' into marcT3-10-FAF

# Conflicts:
#	extension/Classes/Core/QuickFormQuery.php
parents fd4cea46 6ab85554
Pipeline #4308 failed with stages
in 5 minutes and 30 seconds
......@@ -22,6 +22,7 @@
Release
=======
Version 20.x.x
--------------
......@@ -36,6 +37,34 @@ Features
Bug Fixes
^^^^^^^^^
Version 20.11.0
---------------
Date: 12.11.2020
Features
^^^^^^^^
* #7156 / Throw exception when a report level is defined twice.
* #11335 / Sanitize Alnumx: allow 'ß'
* #11325 / Allow SQL CALL(). Unsupported: Multiple (like query_multi()) - only the first one will be returned.
* #11269 / REST Post might return a customized answer.
* #11512 / Twig: add access to Var store
* #11118 / Uniqueness is now guaranteed in {{random:V}}
* #11513 / Add special column AS _script
* #11509 / PDF split fails for broken PDF
* #10979 / Ajax Calls an API - dataReport
Bug Fixes
^^^^^^^^^
* #11430 / phpSpreadsheet throws exception that '' is not numeric
* #10257 / Delete AS _link only worked with certain parameter order.
* #11511 / Tablesorter: fix encoding error, sanitize base64 encoding
* #11146 / Sendmail dynamic PDF broken
* #10554 / Fix extrabuttonlock also for select, radio and checkbox
* #11245 / If forwardMode column is set to '', set forwardMode to 'auto'
Version 20.9.0
--------------
......@@ -54,7 +83,6 @@ Features
* #10979 / Report: do SIP protected AJAX calls to typo3conf/ext/qfq/Classes/Api/dataReport.php.
* #11076 / Report: trigger call to websockets.
* #11118 / Retrieve random string which is guaranteed to be uniq: {{randomUniq:V}}.
* #11119 / Report: REST Client calls - incl. processing of answer.
* Add CodingGuideline.rst.
......
......@@ -44,7 +44,7 @@ Neue Versionsnummer
**Achtung**: die Release Minor darf KEINE fuehrenden Nullen enthalten!!! Ansonsten funktioniert die Verteilung vie TER nicht.
**Auto**: ./setVersion.sh 20.9.0
**Auto**: ./setVersion.sh 20.11.0
Manuell:
* extension/Documentation/_make/conf.py: release, version-
......@@ -59,12 +59,12 @@ Neue Versionsnummer
* Commit & Push new version changes to master branch:
New version 20.9.0
New version 20.11.0
7) **New Tag**:
git tag v20.9.0
git push -u origin v20.9.0
git tag v20.11.0
git push -u origin v20.11.0
8) **Merge 'master' into 'develop'**
......
......@@ -256,3 +256,14 @@ To allow it, add 'span' to the valid elements in the FormElement.parameter field
The HTML span tag has to be added via 'source' view. At least in TinyMCE 4.7.13, the glyph is still not shown in the
editor.
FE User
-------
The FE User record (table: fe_users)
* Has to exist.
* Has to be assigned to at least one FE Group. Check ``fe_users.usergroup``.
* Has to be assigned to a T3 page ``fe_users.pid``.
* The T3 page has to be configured as ``record store`` on the T3 Plugin login box.
* Access time has to be zero or a currently valid period.
\ No newline at end of file
......@@ -52,7 +52,7 @@ To decide which Parameter should be placed on *Form.parameter* and which on *For
+-----------------------------+----------------------------------+---------------------------------------------------------------------+------+-------------+----------+
| Parameter | Example | Description | Form | FormElement | Used for |
+=============================+==================================+=====================================================================+======+=============+==========+
| ldapServer | directory.example.com | Hostname. For LDAPS: `ldaps://directory.example.com:636` | x | x | TA, FSL |
| ldapServer | ldaps://directory.example.com:636| Hostname. | x | x | TA, FSL |
+-----------------------------+----------------------------------+---------------------------------------------------------------------+------+-------------+----------+
| ldapBaseDn | ou=Addressbook,dc=example,dc=com | Base DN to start the search | x | x | TA, FSL |
+-----------------------------+----------------------------------+---------------------------------------------------------------------+------+-------------+----------+
......@@ -105,7 +105,7 @@ The *FormElement.parameter*=*typeAheadLdap* will trigger LDAP searches on every
* *FormElement.parameter.typeAheadLdap* - activate the mode *Typeahead* - no value is needed, the existence is sufficient.
* *Form.parameter* or *FormElement.parameter*:
* *ldapServer* = `directory.example.com`
* *ldapServer* = `ldaps://directory.example.com:636`
* *ldapBaseDn* = `ou=Addressbook,dc=example,dc=com`
* *typeAheadLdapSearch* = `(|(cn=*?*)(mail=*?*))`
* *typeAheadLdapValuePrintf* = `'%s / %s', cn, email`
......@@ -213,7 +213,7 @@ Action Elements.
* *FormElement.parameter.fillStoreLdap* - activate the mode *Fill S* - no value is needed, the existence is sufficient.
* *Form.parameter* or *FormElement.parameter*:
* *ldapServer* = `directory.example.com`
* *ldapServer* = `ldaps://directory.example.com:636`
* *ldapBaseDn* = `ou=Addressbook,dc=example,dc=com`
* *typeAheadLdapSearch* = `(|(cn=*?*)(mail=*?*))`
* *ldapAttributes* = `givenName, sn, telephoneNumber, email`
......
......@@ -22,6 +22,7 @@
Release
=======
Version 20.x.x
--------------
......@@ -36,6 +37,34 @@ Features
Bug Fixes
^^^^^^^^^
Version 20.11.0
---------------
Date: 12.11.2020
Features
^^^^^^^^
* #7156 / Throw exception when a report level is defined twice.
* #11335 / Sanitize Alnumx: allow 'ß'
* #11325 / Allow SQL CALL(). Unsupported: Multiple (like query_multi()) - only the first one will be returned.
* #11269 / REST Post might return a customized answer.
* #11512 / Twig: add access to Var store
* #11118 / Uniqueness is now guaranteed in {{random:V}}
* #11513 / Add special column AS _script
* #11509 / PDF split fails for broken PDF
* #10979 / Ajax Calls an API - dataReport
Bug Fixes
^^^^^^^^^
* #11430 / phpSpreadsheet throws exception that '' is not numeric
* #10257 / Delete AS _link only worked with certain parameter order.
* #11511 / Tablesorter: fix encoding error, sanitize base64 encoding
* #11146 / Sendmail dynamic PDF broken
* #10554 / Fix extrabuttonlock also for select, radio and checkbox
* #11245 / If forwardMode column is set to '', set forwardMode to 'auto'
Version 20.9.0
--------------
......
......@@ -1062,8 +1062,8 @@ Column: _Paged
::
"[table=<table name>&r-<record id>[&param=value&...] | [text] | [tooltip] | [question parameter] | [class] | [render mode]" as _Paged.
"[form=<form name>&r-<record id>[&param=value&...] | [text] | [tooltip] | [question parameter] | [class] | [render mode]" as _Paged.
"[table=<table name>&r=<record id>[&param=value&...] | [text] | [tooltip] | [question parameter] | [class] | [render mode]" as _Paged.
"[form=<form name>&r=<record id>[&param=value&...] | [text] | [tooltip] | [question parameter] | [class] | [render mode]" as _Paged.
.. _column_vertical:
......
......@@ -21,8 +21,8 @@
; you can use in 'conf.py'
project = QFQ - Quick Form Query
version = 20.9
release = 20.9.0
version = 20.11
release = 20.11.0
t3author = Carsten Rose
copyright = since 2017 by the author
......
......@@ -62,9 +62,9 @@ author = 'Carsten Rose, Benjamin Baer, Marc Egger'
# built documents.
#
# The short X.Y version.
version = '20.9'
version = '20.11'
# The full version, including alpha/beta/rc tags.
release = '20.9.0'
release = '20.11.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
......
......@@ -276,6 +276,7 @@ const ERROR_TOO_FEW_PARAMETER_FOR_SENDMAIL = 1408;
const ERROR_TOO_MANY_PARAMETER = 1409;
const ERROR_INVALID_SAVE_PDF_FILENAME = 1410;
const ERROR_TWIG_COLUMN_NOT_UNIQUE = 1411;
const ERROR_DOUBLE_DEFINITION = 1412;
// Upload
const ERROR_UPLOAD = 1500;
......
......@@ -949,7 +949,7 @@ class Link {
* @param array $vars
* @throws \UserReportException
*/
private function checkParam(array $tokenGiven, array $vars) {
private function checkParam(array $tokenGiven, array &$vars) {
$countLinkAnchor = 0;
$countLinkPicture = 0;
$countSources = 0;
......@@ -989,6 +989,10 @@ class Link {
if (isset($tokenGiven[TOKEN_DOWNLOAD]) && count($vars[NAME_COLLECT_ELEMENTS]) == 0 && $countSources == 0) {
throw new \UserReportException ("Missing element sources for download", ERROR_MISSING_REQUIRED_PARAMETER);
}
if (isset($tokenGiven[TOKEN_ACTION_DELETE])) {
$this->checkDeleteParam($vars);
}
}
/**
......@@ -1841,14 +1845,6 @@ EOF;
*/
private function buildActionDelete($vars, $value) {
// Minimal check for required parameter.
$vars[NAME_URL_PARAM] = $this->checkDeleteParam($vars[NAME_URL_PARAM]);
if ($vars[NAME_URL_PARAM] == '') {
$vars[NAME_RENDER] = RENDER_MODE_5;
return $vars;
}
if ($vars[NAME_URL] == '') {
$vars[NAME_URL] = Path::appToApi(API_DELETE_PHP);
}
......@@ -1865,35 +1861,33 @@ EOF;
/**
* Check that at least SIP_RECORD_ID is given and SIP_TABLE or SIP_FORM.
* This check is only processed for COLUMN_PAGED & COLUMN_PPAGED. Not for COLOUMN_LINK, cause it's not known there.
* This check is only processed for COLUMN_PAGED & COLUMN_PAGED. Not for COLUMN_LINK, cause it's not known there.
* In case of missing parameter, throw an exception.
*
* @param $urlParam
* @return string
* @param array $vars
* @throws \UserFormException
* @throws \UserReportException
*/
private function checkDeleteParam($urlParam) {
private function checkDeleteParam(&$vars) {
$urlParam = $vars[NAME_URL_PARAM];
// Fill array 'found' with every given token
$found = KeyValueStringParser::parse($urlParam, '=', '&');
// If there is no 'r' or 'r'=0: no delete button will be rendered
if (!isset($found[SIP_RECORD_ID]) || $found[SIP_RECORD_ID] == '' || $found[SIP_RECORD_ID] == 0) {
return '';
}
$flagRecordId = isset($found[SIP_RECORD_ID]);
$flagRecordId = isset($found[SIP_RECORD_ID]) && $found[SIP_RECORD_ID] != '' && $found[SIP_RECORD_ID] != 0;
$flagTable = isset($found[SIP_TABLE]) && $found[SIP_TABLE] != '';
$flagForm = isset($found[SIP_FORM]) && $found[SIP_FORM] != '';
if ($flagRecordId && ($flagTable || $flagForm)) {
return $urlParam;
if (!$flagRecordId) {
// If there is no 'r' or 'r'=0: no delete button will be rendered
$vars[NAME_RENDER] = RENDER_MODE_5;
} else {
if (!$flagTable && !$flagForm) {
throw new \UserReportException ("Missing some qualifier/value for column " . COLUMN_PAGED . '/' . COLUMN_PPAGED . ": " .
SIP_RECORD_ID . ", " . SIP_FORM . " or " . SIP_TABLE, ERROR_MISSING_REQUIRED_DELETE_QUALIFIER);
}
}
throw new \UserReportException ("Missing some qualifier/value for column " . COLUMN_PAGED . '/' . COLUMN_PPAGED . ": " .
SIP_RECORD_ID . ", " . SIP_FORM . " or " . SIP_TABLE, ERROR_MISSING_REQUIRED_DELETE_QUALIFIER);
}
/**
......
......@@ -304,8 +304,14 @@ class Report {
*/
private function setLine($level, $frCmd, $value) {
$index = $level . "." . $frCmd;
// throw exception if this level was already defined
if(!empty($this->frArray[$index])) {
throw new \UserReportException ("Double definition: $index is defined more than once.", ERROR_DOUBLE_DEFINITION);
}
// store complete line reformatted in frArray
$this->frArray[$level . "." . $frCmd] = $value;
$this->frArray[$index] = $value;
// per sql command
//pro sql cmd wird der Indexarray abgefüllt. Dieser wird später verwendet um auf den $frArray zuzugreifen
......
......@@ -22,6 +22,7 @@
Release
=======
Version 20.x.x
--------------
......@@ -36,6 +37,34 @@ Features
Bug Fixes
^^^^^^^^^
Version 20.11.0
---------------
Date: 12.11.2020
Features
^^^^^^^^
* #7156 / Throw exception when a report level is defined twice.
* #11335 / Sanitize Alnumx: allow 'ß'
* #11325 / Allow SQL CALL(). Unsupported: Multiple (like query_multi()) - only the first one will be returned.
* #11269 / REST Post might return a customized answer.
* #11512 / Twig: add access to Var store
* #11118 / Uniqueness is now guaranteed in {{random:V}}
* #11513 / Add special column AS _script
* #11509 / PDF split fails for broken PDF
* #10979 / Ajax Calls an API - dataReport
Bug Fixes
^^^^^^^^^
* #11430 / phpSpreadsheet throws exception that '' is not numeric
* #10257 / Delete AS _link only worked with certain parameter order.
* #11511 / Tablesorter: fix encoding error, sanitize base64 encoding
* #11146 / Sendmail dynamic PDF broken
* #10554 / Fix extrabuttonlock also for select, radio and checkbox
* #11245 / If forwardMode column is set to '', set forwardMode to 'auto'
Version 20.9.0
--------------
......@@ -54,7 +83,6 @@ Features
* #10979 / Report: do SIP protected AJAX calls to typo3conf/ext/qfq/Classes/Api/dataReport.php.
* #11076 / Report: trigger call to websockets.
* #11118 / Retrieve random string which is guaranteed to be uniq: {{randomUniq:V}}.
* #11119 / Report: REST Client calls - incl. processing of answer.
* Add CodingGuideline.rst.
......
......@@ -12,7 +12,7 @@ $EM_CONF['qfq'] = array(
'dependencies' => 'fluid,extbase',
'clearcacheonload' => true,
'state' => 'stable',
'version' => '20.9.0',
'version' => '20.11.0',
'constraints' => [
'depends' => [
'typo3' => '7.0.0-9.2.99',
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment