Project

General

Profile

Actions

Bug #82053

closed

onlyAllowedTables is wrongly evaluated while changing doktype on page language overlay

Added by Patrik Karisch over 6 years ago. Updated over 5 years ago.

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

100%

Estimated time:
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

Actions #1

Updated by Gerrit Code Review over 6 years 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

Actions #2

Updated by Wolfgang Klinger over 6 years ago

  • Assignee set to Wolfgang Klinger
Actions #3

Updated by Gerrit Code Review over 6 years 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

Actions #4

Updated by Gerrit Code Review over 6 years ago

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

Actions #5

Updated by Oliver Hader about 6 years ago

  • Assignee deleted (Wolfgang Klinger)
  • Target version deleted (next-patchlevel)
Actions #6

Updated by Gerrit Code Review about 6 years ago

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

Actions #7

Updated by Gerrit Code Review about 6 years ago

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

Actions #8

Updated by Gerrit Code Review about 6 years ago

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

Actions #9

Updated by Gerrit Code Review about 6 years ago

Patch set 3 for branch TYPO3_8-7 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/54672

Actions #10

Updated by Wolfgang Klinger about 6 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100
Actions #11

Updated by Benni Mack over 5 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF