diff --git a/typo3/sysext/beuser/Classes/Service/UserInformationService.php b/typo3/sysext/beuser/Classes/Service/UserInformationService.php index ffb96902bde485515da69cbdef2242d91d6606e1..001bc354ef5d7abe184aab30629cb442805a15d2 100644 --- a/typo3/sysext/beuser/Classes/Service/UserInformationService.php +++ b/typo3/sysext/beuser/Classes/Service/UserInformationService.php @@ -57,12 +57,18 @@ class UserInformationService $user->enablecolumns = [ 'deleted' => true, ]; + // Setup dummy user to allow fetching all group data // @see \TYPO3\CMS\Core\Authentication\BackendUserAuthentication::fetchGroups $user->user = [ 'uid' => PHP_INT_MAX, 'options' => 3, - 'workspace_id' => -99, + // The below admin flag is required to prevent workspace access checks, + // triggered by workspaceInit() in fetchGroupData(). Those would fail + // due to insufficient permissions of the dummy user and therefore might + // result in generating superfluous log entries. + 'admin' => 1, + 'workspace_id' => 0, 'realName' => 'fakeUser', 'email' => 'fake.user@typo3.org', 'TSconfig' => '', diff --git a/typo3/sysext/beuser/Resources/Private/Partials/BackendUserGroup/PaginatedList.html b/typo3/sysext/beuser/Resources/Private/Partials/BackendUserGroup/PaginatedList.html index f175c1cdcf8ca2b264906adf8924283d2a4d9802..2c59f8f92cf2103828e680e987ecfa226121ce3e 100644 --- a/typo3/sysext/beuser/Resources/Private/Partials/BackendUserGroup/PaginatedList.html +++ b/typo3/sysext/beuser/Resources/Private/Partials/BackendUserGroup/PaginatedList.html @@ -1,5 +1,5 @@ <div class="table-fit"> - <table class="table table-striped table-hover"> + <table id="typo3-backend-user-group-list" class="table table-striped table-hover"> <thead> <tr> <th class="col-icon"></th> diff --git a/typo3/sysext/core/Tests/Acceptance/Application/BackendUser/CompareUserCest.php b/typo3/sysext/core/Tests/Acceptance/Application/BackendUser/CompareUserCest.php index 05eb069b005e813e1a90fc67a4b1a5eea99fbc88..f3e8ce411759223606a48b3597e2d1a4e9e6f83e 100644 --- a/typo3/sysext/core/Tests/Acceptance/Application/BackendUser/CompareUserCest.php +++ b/typo3/sysext/core/Tests/Acceptance/Application/BackendUser/CompareUserCest.php @@ -70,4 +70,32 @@ class CompareUserCest $I->waitForElementVisible('#EditDocumentController'); $I->canSee('Edit Backend user "' . $usernameFirstCompare . '" on root level'); } + + /** + * @param ApplicationTester $I + */ + public function accessingBackendUserCompareViewWorks(ApplicationTester $I): void + { + $I->amGoingTo('Switch to user group listing'); + $I->see('Backend User Listing', 'h1'); + $I->selectOption('.t3-js-jumpMenuBox', 'Backend user groups'); + $I->see('Backend User Group Listing', 'h1'); + + $I->amGoingTo('Add three groups to compare'); + $I->click('#typo3-backend-user-group-list > tbody > tr:nth-child(1) > td.col-control > div:nth-child(3) > a'); + $I->waitForElementVisible('table#typo3-backend-user-group-list'); + $I->click('#typo3-backend-user-group-list > tbody > tr:nth-child(2) > td.col-control > div:nth-child(3) > a'); + $I->waitForElementVisible('table#typo3-backend-user-group-list'); + $I->click('#typo3-backend-user-group-list > tbody > tr:nth-child(3) > td.col-control > div:nth-child(3) > a'); + + $I->amGoingTo('Access the user group compare view'); + $I->waitForElementVisible('table#typo3-backend-user-list-compare', 20); + $I->canSeeNumberOfElements('#typo3-backend-user-list-compare tbody tr', 3); + $I->click('Compare backend usergroups'); + + $I->amGoingTo('Check compare view is loaded with the correct number of groups'); + $I->see('Compare backend usergroups', 'h1'); + // We expect four header columns, since the first one is used for the row labels + $I->canSeeNumberOfElements('#tx_beuser_compare > thead > tr > th', 4); + } }