Project

General

Profile

Actions

Bug #103632

open

1: recordEditAccessInternals() check failed. [ERROR: The "languageField" field named "sys_language_uid" was not found in testing record!]

Added by Dieter Dr. Porth 7 months ago. Updated 4 months ago.

Status:
Needs Feedback
Priority:
Should have
Assignee:
-
Category:
System/Bootstrap/Configuration
Target version:
-
Start date:
2024-04-15
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
11
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

I have defined a normal editor, which is allowed to add pages and sysforlder.
If that user tried to add a sysfpolder under a sysfolder, he will get the erro r
`1: recordEditAccessInternals() check failed. [ERROR: The "languageField" field named "sys_language_uid" was not found in testing record!]`
after he had dropped the sysfolder and renamed it (Screenshot)

If the backend-user tries to add the sysfolder unter a normal page, everything works fine.

It looks similiar to closed issue https://forge.typo3.org/issues/98262.

I have discussed it in the slack-channel - with no success. I don't have an idea, what is going wrong.


Files


Related issues 1 (0 open1 closed)

Related to TYPO3 Core - Bug #98262: Editor unable to create new page in Typo3 11 - 1: recordEditAccessInternals() check failed. [ERROR: The "languageField" field named "sys_language_uid" was not found in testing record!]Closed2022-09-05

Actions
Actions #1

Updated by Stefan Bürk 7 months ago

A collegue reported the same exception with a slichtly different scenario. A normal
editor adding a page beneath a siteroot, but the site-config yaml file is missing.

The DataHandler for new records(page) adds for TCA managed tables, if they have a
languageField configuerd the languageField data if a) a site config can be loaded
and b) the current backend user has a matching/allowed siteLanguage in it. If not,
nothing is done (in earlier version there was a fallback for all siteconfig which
has been removed).

That means, if no SiteConfig can be found the recordEditAccesInternals fails for
new records.

In case of the sysfolder scenario on root page, that is the same issue as no siteconfig
can be found (uid = 0 has no siteconfig).

Need to talk with some people how the overall plan is, and if a "siteconfig" should be
required for ALL root-level things and how to deal when adding something on root-level.

Eventually the "root-level" is considerd as "admin only".

For my collegue it was easy to simply provide the siteconfig yaml file for the siteroot in
the rootline and the error was gone.

Note: Having sysfolders on rootlevel without a siteconfig as parent in the rootline does
not work for multi-language sites - so maybe consider to create the sysfolder beneath a
site - albeit not tackling this issue directly.

I'd say this nees deeper thinking and (finally) a concept how that level should work and
if a siteconfig should be required for lowest points or not.

Issue #98262 also states this in a comment:

Update, in case anyone stumbles upon this page googling the error message: it turns out editors cannot create pages outside of web roots in Typo3 11 (and perhaps 10 - noticed this after upgrading from 9 to 10 and subsequently to 11). I had a tree of maps containing address records outside the root of a website. Have now moved that inside and editors are able to add maps again. Strange behaviour in my opinion, as the editor should have access according to the access module.

that normal editors are not allowed to create pages outsite of a valid webroot (siteroot/having a siteconfig).

The point is, that it needs to made clear if that is the wanted behaviour or not, and either properly documented
or guarded EARLIER (not allowing to start creating it on the rootlevel/outsite a webroot) etc.

Actions #2

Updated by Stefan Bürk 7 months ago

  • Related to Bug #98262: Editor unable to create new page in Typo3 11 - 1: recordEditAccessInternals() check failed. [ERROR: The "languageField" field named "sys_language_uid" was not found in testing record!] added
Actions #3

Updated by Stefan Bürk 7 months ago

  • Status changed from New to Needs Feedback
Actions #4

Updated by Dieter Dr. Porth 7 months ago

Your hint is right. The affected site is a multidomain site. Each subpage (3rd level domain) represents a location in the holding company. The super editor wanted to create a folder in a subfolder outside of any domain. The Cross-holding records should be maintained in different domains. The error occurred when the subfolder was created.
Data should then be maintained in that folder and should be available to all domains.

I recommended the following to the customer as a workaround:
1. Create sysfolders in one page.
2. Move the sysfolder to the desired location.

I don't want to grant the editor any admin rights to keep the backend simple for the editor.

I think the error catching mechanism is wrong at this point because the workaround also works.

Actions #5

Updated by Stefan Bürk 7 months ago

I think the error catching mechanism is wrong at this point because the workaround also works.

As outlined above, we have to discuss about how the concept should be or
what is really intended. The check targets the existing of a language id,
which get not preset for new page record because of not finding a siteconfiguration
in the rootline.

Not ideal, but at least a workaround which is possible. In the end, having
sysfolders beneath a site is a good idea anyway to have only the specific
languages and not records of all site languages of all sites.

Actions #6

Updated by Garvin Hicking 4 months ago

  • Category set to System/Bootstrap/Configuration
Actions

Also available in: Atom PDF