diff --git a/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php b/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php index 74cf4798d625f3fd5e5e1947da451db0955b712a..c153fc68f0bee69edadea0423e14778a2379aa9e 100644 --- a/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php +++ b/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php @@ -1863,7 +1863,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication if ($this->isAdmin()) { $filePermissions = array_map('is_bool', $filePermissions); } else { - $userGroupRecordPermissions = GeneralUtility::trimExplode(',', $this->groupData['file_permissions'], true); + $userGroupRecordPermissions = GeneralUtility::trimExplode(',', $this->groupData['file_permissions'] ?? '', true); array_walk( $userGroupRecordPermissions, function ($permission) use (&$filePermissions) { diff --git a/typo3/sysext/core/Tests/Unit/Authentication/BackendUserAuthenticationTest.php b/typo3/sysext/core/Tests/Unit/Authentication/BackendUserAuthenticationTest.php index 6f52979fb92fe6cd20383b46e436b099d56e2b94..a30290757ff3d7f1daa07eca65e0a31aa5321257 100644 --- a/typo3/sysext/core/Tests/Unit/Authentication/BackendUserAuthenticationTest.php +++ b/typo3/sysext/core/Tests/Unit/Authentication/BackendUserAuthenticationTest.php @@ -1,4 +1,5 @@ <?php +declare(strict_types = 1); namespace TYPO3\CMS\Core\Tests\Unit\Authentication; /* @@ -22,6 +23,7 @@ use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder; use TYPO3\CMS\Core\Database\Query\QueryBuilder; +use TYPO3\CMS\Core\FormProtection\BackendFormProtection; use TYPO3\CMS\Core\FormProtection\FormProtectionFactory; use TYPO3\CMS\Core\Resource\ResourceStorage; use TYPO3\CMS\Core\Tests\Unit\Database\Mocks\MockPlatform; @@ -34,11 +36,6 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ class BackendUserAuthenticationTest extends UnitTestCase { - /** - * Subject is not notice free, disable E_NOTICES - */ - protected static $suppressNotices = true; - /** * @var array */ @@ -65,7 +62,7 @@ class BackendUserAuthenticationTest extends UnitTestCase /** * Tear down */ - protected function tearDown() + protected function tearDown(): void { FormProtectionFactory::purgeInstances(); parent::tearDown(); @@ -77,7 +74,7 @@ class BackendUserAuthenticationTest extends UnitTestCase /** * @test */ - public function logoffCleansFormProtectionIfBackendUserIsLoggedIn() + public function logoffCleansFormProtectionIfBackendUserIsLoggedIn(): void { /** @var ObjectProphecy|Connection $connection */ $connection = $this->prophesize(Connection::class); @@ -90,7 +87,7 @@ class BackendUserAuthenticationTest extends UnitTestCase GeneralUtility::addInstance(ConnectionPool::class, $connectionPool->reveal()); /** @var ObjectProphecy|\TYPO3\CMS\Core\FormProtection\AbstractFormProtection $formProtection */ - $formProtection = $this->prophesize(\TYPO3\CMS\Core\FormProtection\BackendFormProtection::class); + $formProtection = $this->prophesize(BackendFormProtection::class); $formProtection->clean()->shouldBeCalled(); FormProtectionFactory::set( @@ -115,7 +112,7 @@ class BackendUserAuthenticationTest extends UnitTestCase /** * @return array */ - public function getTSConfigDataProvider() + public function getTSConfigDataProvider(): array { $completeConfiguration = [ 'value' => 'oneValue', @@ -257,7 +254,7 @@ class BackendUserAuthenticationTest extends UnitTestCase * @dataProvider getTSConfigDataProvider * @test */ - public function getTSConfigReturnsCorrectArrayForGivenObjectString(array $completeConfiguration, $objectString, array $expectedConfiguration) + public function getTSConfigReturnsCorrectArrayForGivenObjectString(array $completeConfiguration, $objectString, array $expectedConfiguration): void { /** @var BackendUserAuthentication|\PHPUnit_Framework_MockObject_MockObject $subject */ $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -274,7 +271,7 @@ class BackendUserAuthenticationTest extends UnitTestCase /** * @return array */ - public function getFilePermissionsTakesUserDefaultAndStoragePermissionsIntoAccountIfUserIsNotAdminDataProvider() + public function getFilePermissionsTakesUserDefaultAndStoragePermissionsIntoAccountIfUserIsNotAdminDataProvider(): array { return [ 'Only read permissions' => [ @@ -328,7 +325,7 @@ class BackendUserAuthenticationTest extends UnitTestCase * @test * @dataProvider getFilePermissionsTakesUserDefaultAndStoragePermissionsIntoAccountIfUserIsNotAdminDataProvider */ - public function getFilePermissionsTakesUserDefaultPermissionsFromTsConfigIntoAccountIfUserIsNotAdmin(array $userTsConfiguration) + public function getFilePermissionsTakesUserDefaultPermissionsFromTsConfigIntoAccountIfUserIsNotAdmin(array $userTsConfiguration): void { /** @var BackendUserAuthentication|\PHPUnit_Framework_MockObject_MockObject $subject */ $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -363,7 +360,7 @@ class BackendUserAuthenticationTest extends UnitTestCase /** * @return array */ - public function getFilePermissionsFromStorageDataProvider() + public function getFilePermissionsFromStorageDataProvider(): array { $defaultPermissions = [ 'addFile' => true, @@ -467,7 +464,7 @@ class BackendUserAuthenticationTest extends UnitTestCase * @test * @dataProvider getFilePermissionsFromStorageDataProvider */ - public function getFilePermissionsFromStorageOverwritesDefaultPermissions(array $defaultPermissions, $storageUid, array $storagePermissions, array $expectedPermissions) + public function getFilePermissionsFromStorageOverwritesDefaultPermissions(array $defaultPermissions, $storageUid, array $storagePermissions, array $expectedPermissions): void { /** @var BackendUserAuthentication|\PHPUnit_Framework_MockObject_MockObject $subject */ $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -506,7 +503,7 @@ class BackendUserAuthenticationTest extends UnitTestCase * @test * @dataProvider getFilePermissionsFromStorageDataProvider */ - public function getFilePermissionsFromStorageAlwaysReturnsDefaultPermissionsForAdmins(array $defaultPermissions, $storageUid, array $storagePermissions) + public function getFilePermissionsFromStorageAlwaysReturnsDefaultPermissionsForAdmins(array $defaultPermissions, $storageUid, array $storagePermissions): void { /** @var BackendUserAuthentication|\PHPUnit_Framework_MockObject_MockObject $subject */ $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -541,7 +538,7 @@ class BackendUserAuthenticationTest extends UnitTestCase /** * @return array */ - public function getFilePermissionsTakesUserDefaultPermissionsFromRecordIntoAccountIfUserIsNotAdminDataProvider() + public function getFilePermissionsTakesUserDefaultPermissionsFromRecordIntoAccountIfUserIsNotAdminDataProvider(): array { return [ 'No permission' => [ @@ -655,7 +652,7 @@ class BackendUserAuthenticationTest extends UnitTestCase * * @dataProvider getFilePermissionsTakesUserDefaultPermissionsFromRecordIntoAccountIfUserIsNotAdminDataProvider */ - public function getFilePermissionsTakesUserDefaultPermissionsFromRecordIntoAccountIfUserIsNotAdmin(string $permissionValue, array $expectedPermissions) + public function getFilePermissionsTakesUserDefaultPermissionsFromRecordIntoAccountIfUserIsNotAdmin(string $permissionValue, array $expectedPermissions): void { /** @var BackendUserAuthentication|\PHPUnit_Framework_MockObject_MockObject $subject */ $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -675,7 +672,7 @@ class BackendUserAuthenticationTest extends UnitTestCase /** * @test */ - public function getFilePermissionsGrantsAllPermissionsToAdminUsers() + public function getFilePermissionsGrantsAllPermissionsToAdminUsers(): void { /** @var BackendUserAuthentication|\PHPUnit_Framework_MockObject_MockObject $subject */ $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -711,7 +708,7 @@ class BackendUserAuthenticationTest extends UnitTestCase /** * @test */ - public function jsConfirmationReturnsTrueIfPassedValueEqualsConfiguration() + public function jsConfirmationReturnsTrueIfPassedValueEqualsConfiguration(): void { /** @var BackendUserAuthentication|\PHPUnit_Framework_MockObject_MockObject $subject */ $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -726,7 +723,7 @@ class BackendUserAuthenticationTest extends UnitTestCase /** * @test */ - public function jsConfirmationAllowsSettingMultipleBitsInValue() + public function jsConfirmationAllowsSettingMultipleBitsInValue(): void { /** @var BackendUserAuthentication|\PHPUnit_Framework_MockObject_MockObject $subject */ $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -749,7 +746,7 @@ class BackendUserAuthenticationTest extends UnitTestCase * @param int $feEditAllowed * @param int $otherAllowed */ - public function jsConfirmationAllowsUnsettingBitsInValue($jsConfirmation, $typeChangeAllowed, $copyMovePasteAllowed, $deleteAllowed, $feEditAllowed, $otherAllowed) + public function jsConfirmationAllowsUnsettingBitsInValue($jsConfirmation, $typeChangeAllowed, $copyMovePasteAllowed, $deleteAllowed, $feEditAllowed, $otherAllowed): void { $subject = $this->getMockBuilder(BackendUserAuthentication::class) ->setMethods(['getTSConfig']) @@ -766,7 +763,7 @@ class BackendUserAuthenticationTest extends UnitTestCase /** * @return array */ - public function jsConfirmationsWithUnsetBits() + public function jsConfirmationsWithUnsetBits(): array { return [ 'All except "type change" and "copy/move/paste"' => [ @@ -791,7 +788,7 @@ class BackendUserAuthenticationTest extends UnitTestCase /** * @test */ - public function jsConfirmationAlwaysReturnsFalseIfNoConfirmationIsSet() + public function jsConfirmationAlwaysReturnsFalseIfNoConfirmationIsSet(): void { /** @var BackendUserAuthentication|\PHPUnit_Framework_MockObject_MockObject $subject */ $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -806,7 +803,7 @@ class BackendUserAuthenticationTest extends UnitTestCase /** * @test */ - public function jsConfirmationReturnsTrueIfConfigurationIsMissing() + public function jsConfirmationReturnsTrueIfConfigurationIsMissing(): void { /** @var BackendUserAuthentication|\PHPUnit_Framework_MockObject_MockObject $subject */ $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -867,7 +864,7 @@ class BackendUserAuthenticationTest extends UnitTestCase * @param string $groups * @param string $expected */ - public function getPagePermissionsClauseWithValidUser(int $perms, bool $admin, string $groups, string $expected) + public function getPagePermissionsClauseWithValidUser(int $perms, bool $admin, string $groups, string $expected): void { // We only need to setup the mocking for the non-admin cases // If this setup is done for admin cases the FIFO behavior