Bug #35170
closedFlexform cannot be rendered for non admins in 4.5.13
0%
Description
After the changes made in #29019 (TYPO3 4.5.13) a non admin user cannot access the flexform field in a powermail_field record anymore, because it wouldn't be rendered. maybe this affects other flexforms too, that's why i posted it here as a core issue.
the critical change was made in t3lib/class.t3lib_tceforms.php:
2488 $dataStructArray = $flexFormHelper->modifyFlexFormDS($dataStructArray, $table, $field, $row, $PA['fieldConf']['config']);
to
2488 $dataStructArray = $flexFormHelper->modifyFlexFormDS($dataStructArray, $table, $field, $row, $PA['fieldConf']);
Powermail's tca for powermail_field looks like this:
typo3conf/ext/powermail/tca.php:
377 'flexform' => array ( 378 'exclude' => 1, 379 'label' => 'LLL:EXT:powermail/locallang_db.xml:tx_powermail_fields.field', 380 'config' => array ( 381 'type' => 'flex', 382 'ds_pointerField' => 'formtype', 383 'ds' => array( 384 'default' => 'FILE:EXT:powermail/lib/def/def_field_error.xml', 385 'button' => 'FILE:EXT:powermail/lib/def/def_field_button.xml', 386 'captcha' => 'FILE:EXT:powermail/lib/def/def_field_captcha.xml', 387 'check' => 'FILE:EXT:powermail/lib/def/def_field_check.xml', 388 'content' => 'FILE:EXT:powermail/lib/def/def_field_content.xml', 389 'countryselect' => 'FILE:EXT:powermail/lib/def/def_field_countryselect.xml', 390 'date' => 'FILE:EXT:powermail/lib/def/def_field_date.xml', 391 'datetime' => 'FILE:EXT:powermail/lib/def/def_field_datetime.xml', 392 'file' => 'FILE:EXT:powermail/lib/def/def_field_file.xml', 393 'hidden' => 'FILE:EXT:powermail/lib/def/def_field_hidden.xml', 394 'html' => 'FILE:EXT:powermail/lib/def/def_field_html.xml', 395 'label' => 'FILE:EXT:powermail/lib/def/def_field_label.xml', 396 'password' => 'FILE:EXT:powermail/lib/def/def_field_password.xml', 397 'radio' => 'FILE:EXT:powermail/lib/def/def_field_radio.xml', 398 'reset' => 'FILE:EXT:powermail/lib/def/def_field_reset.xml', 399 'select' => 'FILE:EXT:powermail/lib/def/def_field_select.xml', 400 'submit' => 'FILE:EXT:powermail/lib/def/def_field_submit.xml', 401 'submitgraphic' => 'FILE:EXT:powermail/lib/def/def_field_submitgraphic.xml', 402 'text' => 'FILE:EXT:powermail/lib/def/def_field_text.xml', 403 'textarea' => 'FILE:EXT:powermail/lib/def/def_field_textarea.xml', 404 'typoscript' => 'FILE:EXT:powermail/lib/def/def_field_typoscript.xml', 405 ), 406 ) 407 ),
So obviously the config wont be read anymore at all. i'm not sure whether it's a powermail or a core issue ;-/
Updated by Markus Klein over 12 years ago
Hi Philipp,
whatever causes this (I didn't test), the change you mentioned is not the reason.
In modifyFlexFormDS(,,,$tableConf) references are used correctly like $tableConf['config']['ds_pointerField'].
There must be some other reason.
Updated by Anonymous over 12 years ago
oh yes, you're right.
tracked it down to t3lib/tceforms/class.t3lib_tceforms_flexforms.php:
301 protected function getFlexFormNonExcludeFields($table, $tableField, $extIdent) { ... 306 $accessListFields = t3lib_div::trimExplode(',', $GLOBALS['BE_USER']->groupData['non_exclude_fields']); 307 $identPrefix = $table . ':' . $tableField . ';' . $extIdent . ';'; 308 $nonExcludeFields = array(); 309 310 // Collect only FlexForm fields 311 foreach ($accessListFields as $field) { 312 if (strpos($field, $identPrefix) !== FALSE) { 313 list(, , $sheetName, $fieldName) = explode(';', $field); 314 $nonExcludeFields[$sheetName][$fieldName] = TRUE; 315 } 316 }
the comparision in line 312 fails for all $accessListFields. therefore the returned array of $nonExcludeFields is empty. that's whats causing the non rendering of the flexform fields.
in the settings for the usergroup i only can control the users access to the flexform field itself, not the single fields within that flexform field.
Updated by Anonymous over 12 years ago
is duplicate of #31831. Issue can be closed.
Updated by Kai Vogel over 12 years ago
- Status changed from New to Resolved
Applied in changeset c49f742c588e243ae2c21dbe45cbf405f9a42d37.