Attention
TYPO3 v11 has reached end-of-life as of October 31th 2024 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.
Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v11 here: TYPO3 ELTS.
Using Custom Permission Options
TYPO3 allows extension developers to register their own permission options, managed automatically by the built-in user group access lists. The options can be grouped in categories. A custom permission option is always a checkbox (on/off).
The scope of such options is the backend only.
Registration
Options are configured in the global variable
$GLOBALS
in
EXT:
. The syntax is demonstrated in
the following example, which registers two custom permission options:
// Register some custom permission options shown in BE group access lists
$GLOBALS['TYPO3_CONF_VARS']['BE']['customPermOptions']['tx_styleguide_custom'] = [
'header' => 'Custom styleguide permissions',
'items' => [
'key1' => [
'Option 1',
// Icon has been registered above
'tcarecords-tx_styleguide_forms-default',
'Description 1',
],
'key2' => [
'Option 2',
],
],
];
The result is that these options appear in the group access lists like this:
As you can see it is possible to add both an icon and a description text. If icons not provided by the Core are used, they need to be registered with the Icon API.
Evaluation
To check if a custom permission option is set call the following API function from the user object:
$GLOBALS['BE_USER']->check('custom_options', $catKey . ':' . $itemKey);
$cat
is the category in which the option resides. From the example
above this would be tx_
.
$item
is the key of the item in the category you are evaluating.
From the example above this could be key1
, key2
or key3
depending on which one of them you want to evaluate.
The function returns true if the option is set, otherwise false.
Keys for Options
It is good practice to use the extension keys prefixed with tx_
on
the first level of the array to avoid potential conflicts with other
custom options.
Important
Never pick a key containing any of the characters ",:\|". They are reserved delimiter characters.