Bug #83001

Flaws in allowLanguageSynchronization fields on pages_language_overay

Added by Oliver Hader 6 months ago. Updated 6 months ago.

Status:
Resolved
Priority:
Should have
Assignee:
-
Category:
DataHandler aka TCEmain
Target version:
-
Start date:
2017-11-15
Due date:
% Done:

100%

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

Description

In case a TCA field uses allowLanguageSynchronization (or l10n_mode=exclude) for table pages_language_overlay, dependencies (localizations of the initial record) are processed that point to the according pages_language_overlay. However pages_language_overlay records cannot be localized further, they always depend on a single pages record which is the record of the default language.

In case the backend is used as non-admin user that has a language restriction ("Limit to languages" in backend groups/users settings), an error message is shown:
[newlog()] recordEditAccessInternals() check failed. [ERROR: Language was not allowed.]

In TYPO3 v8, all pages_language_overlay records are selected which match the condition pages_language_overlay.pid = pages_language_overlay.uid (pid is used as transOrigPointerField). In TYPO3 v9 this changed since pages_language_overlay has been migrated into pages having a distinct transOrigPointerField in l10n_parent.

Associated revisions

Revision 25ccdf9c (diff)
Added by Oliver Hader 6 months ago

[BUGFIX] Fix allowLanguageSynchronization on pages_language_overlay

In case a TCA field uses allowLanguageSynchronization (or
l10n_mode=exclude) for table pages_language_overlay, dependencies
(localizations of the initial record) are processed that point to
the according pages_language_overlay. However pages_language_overlay
records cannot be localized further, they always depend on a single
pages record which is the record of the default language.

In case the backend is used as non-admin user that has a language
restriction ("Limit to languages" in backend groups/users settings),
an error message is shown:

[newlog()] recordEditAccessInternals() check failed.
[ERROR: Language was not allowed.]

In TYPO3 v8, all pages_language_overlay records are selected which match
the condition pages_language_overlay.pid = pages_language_overlay.uid
(pid is used as transOrigPointerField). In TYPO3 v9 this changed since
pages_language_overlay has been migrated into pages having a distinct
transOrigPointerField in l10n_parent.

Resolves: #83001
Releases: 8.7
Change-Id: Ie4dfdb44c3d6a9b89819f473816f3e062a685027
Reviewed-on: https://review.typo3.org/54650
Tested-by: TYPO3com <>
Reviewed-by: Susanne Moog <>
Tested-by: Susanne Moog <>
Reviewed-by: Frank Naegler <>
Tested-by: Frank Naegler <>

History

#1 Updated by Oliver Hader 6 months ago

  • Description updated (diff)

#2 Updated by Oliver Hader 6 months ago

  • Description updated (diff)

#3 Updated by Oliver Hader 6 months ago

  • Subject changed from Flaws in allowLanguageSynchronization field on pages_language_overay to Flaws in allowLanguageSynchronization fields on pages_language_overay

#4 Updated by Gerrit Code Review 6 months ago

  • Status changed from New to Under Review

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/54650

#5 Updated by Oliver Hader 6 months ago

  • Description updated (diff)

#6 Updated by Gerrit Code Review 6 months 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/54650

#7 Updated by Oliver Hader 6 months ago

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

Also available in: Atom PDF