From 8ca13f87cec5a15d880e07982fff9904efa2ab3b Mon Sep 17 00:00:00 2001
From: Achim Fritz <achim.fritz@b13.de>
Date: Wed, 25 Jan 2023 15:16:51 +0100
Subject: [PATCH] [BUGFIX] Set proper groups in AdminPanel

EXT:frontend's Preview simulation already sets the
userGroup values properly, which allows to simulate
a usergroup.

However, this change also needs to be set in EXT:adminpanel
in order to allow usergroups.

This change adds the same change (see #96381) as in
PreviewSimulator in EXT:adminpanel.

This is required as otherwise, the Frontend user would
re-set the userGroup in FrontendUserAuthentication->createUserAspect()

Resolves: #99718
Related: #96381
Releases: main, 11.5
Change-Id: I346f14e2c7bd655efe3883c3a1543bddff8364e8
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77577
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Benni Mack <benni@typo3.org>
---
 typo3/sysext/adminpanel/Classes/Modules/PreviewModule.php | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/typo3/sysext/adminpanel/Classes/Modules/PreviewModule.php b/typo3/sysext/adminpanel/Classes/Modules/PreviewModule.php
index 967fcb7f7435..cad5c713a97e 100644
--- a/typo3/sysext/adminpanel/Classes/Modules/PreviewModule.php
+++ b/typo3/sysext/adminpanel/Classes/Modules/PreviewModule.php
@@ -201,6 +201,10 @@ class PreviewModule extends AbstractModule implements RequestEnricherInterface,
         if ($simulateUserGroup) {
             $frontendUser = $request->getAttribute('frontend.user');
             $frontendUser->user[$frontendUser->usergroup_column] = $simulateUserGroup;
+            $frontendUser->userGroups[$simulateUserGroup] = [
+                'uid' => $simulateUserGroup,
+                'title' => '_PREVIEW_',
+            ];
             // let's fake having a user with that group, too
             // This can be removed once #90989 is fixed
             $frontendUser->user['uid'] = PHP_INT_MAX;
-- 
GitLab