diff --git a/Resources/Core/Functional/Extensions/json_response/Classes/Middleware/BackendUserHandler.php b/Resources/Core/Functional/Extensions/json_response/Classes/Middleware/BackendUserHandler.php index dde7afa1..11bf09bf 100644 --- a/Resources/Core/Functional/Extensions/json_response/Classes/Middleware/BackendUserHandler.php +++ b/Resources/Core/Functional/Extensions/json_response/Classes/Middleware/BackendUserHandler.php @@ -40,7 +40,7 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface /** @var InternalRequestContext $internalRequestContext */ $internalRequestContext = $request->getAttribute('typo3.testing.context'); $backendUserId = $internalRequestContext->getBackendUserId(); - $workspaceId = $internalRequestContext->getWorkspaceId(); + $workspaceId = $internalRequestContext->getWorkspaceId() ?? 0; if ((int)$backendUserId === 0) { // Skip if $backendUserId is invalid, typically null or 0 @@ -55,10 +55,10 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface // Init backend user if found in database $backendUser = GeneralUtility::makeInstance(FrontendBackendUserAuthentication::class); $backendUser->user = $row; - if ($workspaceId !== null) { - // Force backend user into given workspace, can be 0, too. - $backendUser->setTemporaryWorkspace($workspaceId); - } + $backendUser->uc = isset($row['uc']) ? unserialize($row['uc']) : []; + $backendUser->initializeUserSessionManager(); + $backendUser->fetchGroupData(); + $backendUser->setTemporaryWorkspace($workspaceId); $GLOBALS['BE_USER'] = $backendUser; $this->setBackendUserAspect(GeneralUtility::makeInstance(Context::class), $backendUser); }