Mit dieser simplen Funktion können Sie FeUser Daten schnell und einfach auslesen. Vorausgesetzt, ein Benutzer ist eingeloggt. Diese Methode funktioniert nur im Frontend Context.
Da man in TYPO3 V12 nicht mehr auf den FE-User Array zugreifen kann, kann man dies nun mit Context machen. Es geht bestimmt noch besser mit einem eigenen Custom FrontendUserAspect. Aber hier eine Methode mit QueryBuilder:
<?php
use TYPO3\CMS\Core\Context\Context;
use TYPO3\CMS\Core\SingletonInterface;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Core\Database\ConnectionPool;
class FeuserService implements SingletonInterface {
public function __construct(
private readonly Context $context,
) {}
/**
* A simple function that can be used by controllers
*
*
*/
public function getFeuserData()
{
$context = GeneralUtility::makeInstance(Context::class);
$frontendUserAspect = $context->getAspect('frontend.user');
$userId = $this->context->getPropertyFromAspect('frontend.user', 'id') ?? false;
if ($userId) {
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
$userData = $queryBuilder
->select('*')
->from('fe_users')
->where(
$queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($userId, \PDO::PARAM_INT))
)
->executeQuery()
->fetchAssociative();
unset($userData['password']);
return $userData ?? false;
}
}
}
Diese Methode liefert den Array des eingeloggten FE Users, ansonsten wird einfach false zurückgegeben.
Für mehr Informationen zum Context, können Sie die offizielle Doku von TYPO3 prüfen.