[3.0] - Sprint 2
Currently there's no way to limit Editor's capability of translating, updating and publishing Content item to a set of specific translations specified by their language codes.
Seems like existing Language Limitation in the eZ Platform stack was never intended to limit changes that were a result of an update - it was to limit working with Content item that already has or hasn't got specific translations.
Initial approach was to introduce new
However after giving it more thought, based on opinions of people who worked with Language Limitation in eZ Publish and the fact that currently this Limitation is not usable, I've decided to re-implement Language Limitation instead.
It will also make any potential migration easy, because no further steps will be required - we'll get feature parity with eZ Publish for Language Limitation.
Language Limitation will cover:
- content/create policy: creating new content with the given translations only,
- content/edit policy: editing content allowing both adding new translations and modifying existing translations,
- content/publish policy: publishing content only when the last modified translation (VersionInfo::$initialLanguageCode) is allowed by the Limitation.
content/translate policy still remains not used for now, so there's no point in setting Language Limitation for that policy.
It's important to understand that there's no such concept as "publishing translation" or "editing content language". There's a Version which contains all translations. We can limit actions based on intent.
To make good UX we will, on the UI level, disable possibility to manipulate translations which user does not have access to.
Minor BC break.
The only change with respect to eZ Platform 2.4.x is that creating a Draft from an existing Version will be now possible even if the source Version has no translation within the scope of the Limitation. What won't be possible is updating Draft with disallowed translation, so this does not introduce security risk.
Please note that there's no way to limit creating a new Draft from existing Version as it does not contain information about intent of working with specific translation. Every user with content/edit policy can create Draft from Version.
EZP-29223 Implement permissions for "Content/Translate"