Problem/Motivation
At present we don't have a generic entity API for determining revision support for operations such as:
- view
- delete
- revert
- edit
Node module defines the following permissions:
- delete all revisions
- revert all revisions
- view all revisions
But these are silver-bullet permissions, they don't allow granular access (per node-type, per entity etc).
The test entities in core don't do anything with revision (their routing has access: TRUE)
These entities don't have any UI for viewing/reverting/deleting revisions:
- media
- block content
- taxonomy
- menu link content
This is now starting to be a hard blocker for further generic improvements in core including:
- #2350939: [PP-1] Implement a generic revision UI
- #2795279: [PP-4] [META] Revisions support
- #2925532: [PP-2] Provide bulk action to delete all old revisions of an entity
Proposed resolution
Add new operations to the existing ::access
signature such as
'view all revisions'
to view individual revision or revision listing page.'view revision'
to view individual revision'revert revision'
to revert revision'delete revision'
to delete revision
Remaining tasks
- Review
- RTBC
- Rejoice
User interface changes
None
API changes
_access_node_revision
Route | Path | _access_node_revision op | Entity operation |
---|---|---|---|
entity.node.version_history | /node/{node}/revisions | view | view all revisions |
entity.node.revision | /node/{node}/revisions/{node_revision}/view | view | view revision |
node.revision_revert_confirm | /node/{node}/revisions/{node_revision}/revert | update | revert revision |
node.revision_revert_translation_confirm | /node/{node}/revisions/{node_revision}/revert/{langcode} | update | revert revision |
node.revision_delete_confirm | /node/{node}/revisions/{node_revision}/delete | delete | delete revision |
_access_media_revision
Route | Path | _access_media_revision op | Entity operation |
---|---|---|---|
entity.media.revision | /media/{media}/revisions/{media_revision}/view | view | view all revisions |
https://www.drupal.org/project/media_revisions_ui moule will need a patch once this issue is committed.
Data model changes
N/A
Release notes snippet
TBD