ModifyBlindedConfigurationOptionsEvent

New in version 12.2

The event serves as a direct replacement for the deprecated hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['TYPO3\CMS\Lowlevel\Controller\ConfigurationController']['modifyBlindedConfigurationOptions'].

The PSR-14 event \TYPO3\CMS\Lowlevel\Event\ModifyBlindedConfigurationOptionsEvent is fired in the \TYPO3\CMS\Lowlevel\ConfigurationModuleProvider\GlobalVariableProvider and the \TYPO3\CMS\Lowlevel\ConfigurationModuleProvider\SitesYamlConfigurationProvider while building the configuration array to be displayed in the System > Configuration module. It allows to blind (hide) any configuration options. Usually such options are passwords or other sensitive information.

Using the getProviderIdentifier() method of the event, listeners are able to determine the context the event got dispatched in. This is useful to prevent duplicate code execution, since the event is dispatched for multiple providers. The method returns the identifier of the configuration provider as registered in the configuration module.

Example

Registration of the event listener in the extension's Services.yaml:

EXT:my_extension/Configuration/Services.yaml
services:
  # Place here the default dependency injection configuration

  MyVendor\MyExtension\Lowlevel\EventListener\MyEventListener:
    tags:
      - name: event.listener
        identifier: 'my-extension/blind-configuration-options'
Copied!

Read how to configure dependency injection in extensions.

An implementation of the event listener:

EXT:my_extension/Classes/Lowlevel/EventListener/MyEventListener.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Lowlevel\EventListener;

use TYPO3\CMS\Lowlevel\Event\ModifyBlindedConfigurationOptionsEvent;

final class MyEventListener
{
    public function __invoke(ModifyBlindedConfigurationOptionsEvent $event): void
    {
        $options = $event->getBlindedConfigurationOptions();

        if ($event->getProviderIdentifier() === 'sitesYamlConfiguration') {
            $options['my-site']['settings']['apiKey'] = '***';
        } elseif ($event->getProviderIdentifier() === 'confVars') {
            $options['TYPO3_CONF_VARS']['EXTENSIONS']['my_extension']['password'] = '***';
        }

        $event->setBlindedConfigurationOptions($options);
    }
}
Copied!

API

class \TYPO3\CMS\Lowlevel\Event\ ModifyBlindedConfigurationOptionsEvent

Listeners to this Event will be able to modify the blinded configuration options, displayed in the configuration module of the TYPO3 backend.

setBlindedConfigurationOptions ( array $blindedConfigurationOptions)

Allows to define configuration options to be blinded

param array $blindedConfigurationOptions

the blindedConfigurationOptions

getBlindedConfigurationOptions ( )

Returns the blinded configuration options

returntype

array

getProviderIdentifier ( )

Returns the configuration provider identifier, dispatching the event

returntype

string