Bug #82053

onlyAllowedTables is wrongly evaluated while changing doktype on page language overlay

Added by Patrik Karisch 17 days ago. Updated 11 days ago.

Status:
Under Review
Priority:
Should have
Category:
DataHandler aka TCEmain
Target version:
Start date:
2017-08-07
Due date:
% Done:

0%

TYPO3 Version:
8
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

When I change the doktype of a pages_language_overlay to a doktype which has onlyAllowedTables set, the call DataHandler::doesPageHaveUnallowedTables is done with the id of the pages_language_overlay entry, instead of with the real page uid which needs to be checked.

The affected part:

    public function checkValue($table, $field, $value, $id, $status, $realPid, $tscPID)
    {
        // Result array
        $res = [];

        // Processing special case of field pages.doktype
        if (($table === 'pages' || $table === 'pages_language_overlay') && $field === 'doktype') {
            // ...
            if ($status === 'update') {
                // This checks 1) if we should check for disallowed tables and 2) if there are records from disallowed tables on the current page
                $onlyAllowedTables = isset($GLOBALS['PAGES_TYPES'][$value]['onlyAllowedTables']) ? $GLOBALS['PAGES_TYPES'][$value]['onlyAllowedTables'] : $GLOBALS['PAGES_TYPES']['default']['onlyAllowedTables'];
                if ($onlyAllowedTables) {
                    // this is always called with the $id of the record, whether it is a pages or pages_language_overlay entry
                    $theWrongTables = $this->doesPageHaveUnallowedTables($id, $value);
                    if ($theWrongTables) {
                        // ...
                        return $res;
                    }
                }
            }
        }

        // ...
    }

Possible solution: Use $realPid if the record is pages_language_overlay or use $id if the record is pages

History

#1 Updated by Gerrit Code Review 12 days ago

  • Status changed from New to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/53687

#2 Updated by Wolfgang Klinger 12 days ago

  • Assignee set to Wolfgang Klinger

#3 Updated by Gerrit Code Review 11 days ago

Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/53687

Also available in: Atom PDF