Missing l10n_parent field permission breaks page translation process
If an editor has no write access to the l10n_parent field of pages, creating a page translation fails and ends up with a broken entry in the pages table which even admins can't access anymore.
How to reproduce:
- create a website language record on page id=0
- create site config for new language
- create backend user group with these rights:
- Module: Web>Page and Web>List
- Tables (modify) => Page, Page Content
- Page types => Standard
- Allowed excludefields
- Page => select all but l10n_parent
- Page Content => select all
- set DB Mount
- grant access in module Access
- create backend user and add user group from above
- switch to user
- try to make a new translation of a page
The throbber stays forever, nothing happens (see attached screencast).
If you try to translate the same page again, you get this error message:
Localization failed: there already are localizations (6) for language 1 of the "pages" record 4!
Even an admin user gets the same error message. The new page translation record isn't visible in the list module.
Only solution to fix such a broken page is to set the l10n_parent manually in the database.
Remove exclude option from pages TCA for l10n_parent field.
Or throw exception, if an editor has no access rights for l10n_parent and tries to translate a page.