67 lines
2.9 KiB
ReStructuredText
67 lines
2.9 KiB
ReStructuredText
.. include:: /Includes.rst.txt
|
|
|
|
.. _feature-103521-1718028096:
|
|
|
|
=====================================================================================
|
|
Feature: #103521 - Change table restrictions UI to combine read and write permissions
|
|
=====================================================================================
|
|
|
|
See :issue:`103521`
|
|
|
|
Description
|
|
===========
|
|
|
|
The `tables_select` and `tables_modify` fields of the `be_groups` table store
|
|
information about permissions to read and write into selected database tables.
|
|
|
|
Due to TYPO3's internal behavior, when write permissions are granted for some
|
|
tables, those tables are also automatically available for reading.
|
|
|
|
To make managing table permissions much easier and more efficient for
|
|
integrators, the separate form fields for `Tables (listing) [tables_select]` and
|
|
`Tables (modify) [tables_modify]` have been combined into a single UI element.
|
|
This field now offers separate radio buttons to define which tables the backend
|
|
user group should have permission to read and / or write. This is done by
|
|
selecting one of the "No Access", "Read" or "Read & Write" options.
|
|
|
|
To further improve the user experience, it is also possible to use the
|
|
"Check All", "Uncheck All" and "Toggle Selection" options for each permission.
|
|
|
|
Under the hood, when these permissions are processed, they are still saved
|
|
separately in the `tables_select` and `tables_modify` columns in the
|
|
`be_groups` table, as they were before.
|
|
|
|
To render this new table view and handle its behavior, a dedicated form
|
|
renderType `tablePermission` has been introduced, which is now set for
|
|
the `tables_modify` column. The `tables_select` column has been changed
|
|
to TCA type `passthrough`.
|
|
|
|
The new form element is defined through:
|
|
:php:`\TYPO3\CMS\Backend\Form\Element\TablePermissionElement`.
|
|
It uses a dedicated data provider defined in:
|
|
:php:`\TYPO3\CMS\Backend\Form\FormDataProvider\TcaTablePermission`.
|
|
The JavaScript code is handled by a new web component:
|
|
:js:`@typo3/backend/form-engine/element/table-permission-element.js`.
|
|
|
|
When the :php-short:`\TYPO3\CMS\Backend\Form\FormDataProvider\TcaTablePermission`
|
|
data provider handles the configuration, it
|
|
reads table lists from both the `tables_select` and `tables_modify`
|
|
columns and combines them into a single array with unique table names.
|
|
|
|
Impact
|
|
======
|
|
|
|
Managing table permissions for backend user groups has been improved by
|
|
visually combining the `Tables (listing) [tables_select]` and
|
|
`Tables (modify) [tables_modify]` options, as well as by adding the
|
|
multi record selection functionality.
|
|
|
|
.. note::
|
|
|
|
These changes might affect custom integrations and modifications made to
|
|
the `tables_select` or `tables_modify` columns in the `be_groups` TCA.
|
|
Integrators who have modified the configuration for these fields should
|
|
verify if their code works and adapt it if needed.
|
|
|
|
.. index:: Backend, JavaScript, PHP-API, TCA, ext:core
|