RecordAccessGrantedEvent

New in version 12.0

The PSR-14 event \TYPO3\CMS\Core\Domain\Access\RecordAccessGrantedEvent can be used to either define whether a record access is granted for a user, or to modify the record in question. In case the $accessGranted property is set (either true or false), the defined settings are directly used, skipping any further event listener as well as any further evaluation.

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\Domain\Access\MyEventListener:
    tags:
      - name: event.listener
        identifier: 'my-extension/set-access-granted'
Copied!

Read how to configure dependency injection in extensions.

The corresponding event listener class:

EXT:my_extension/Classes/Domain/Access/MyEventListener.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Domain\Access;

use TYPO3\CMS\Core\Domain\Access\RecordAccessGrantedEvent;

final class MyEventListener
{
    public function __invoke(RecordAccessGrantedEvent $event): void
    {
        // Manually set access granted
        if (
            $event->getTable() === 'my_table' &&
            ($event->getRecord()['custom_access_field'] ?? false)
        ) {
            $event->setAccessGranted(true);
        }

        // Update the record to be checked
        $record = $event->getRecord();
        $record['some_field'] = true;
        $event->updateRecord($record);
    }
}
Copied!

API

class RecordAccessGrantedEvent
Fully qualified name
\TYPO3\CMS\Core\Domain\Access\RecordAccessGrantedEvent

Event to modify records to be checked against "enableFields".

Listeners are able to grant access or to modify the record itself to continue to use the native access check functionality with a modified dataset.

isPropagationStopped ( )
Returns
bool
setAccessGranted ( bool $accessGranted)
param $accessGranted

the accessGranted

getTable ( )
Returns
string
getRecord ( )
Returns
array
updateRecord ( array $record)
param $record

the record

getContext ( )
Returns
\TYPO3\CMS\Core\Context\Context