From a1f509f07fca87880ae469a07d1dedef373c8c88 Mon Sep 17 00:00:00 2001 From: Andrew Longosz Date: Tue, 23 May 2023 18:02:09 +0200 Subject: [PATCH 1/2] Exposed UserService::getUserContentTypeIdentifiers public API --- .../Repository/Decorator/UserServiceDecorator.php | 5 +++++ src/contracts/Repository/UserService.php | 7 +++++++ src/lib/Repository/SiteAccessAware/UserService.php | 5 +++++ src/lib/Repository/UserService.php | 5 +---- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/contracts/Repository/Decorator/UserServiceDecorator.php b/src/contracts/Repository/Decorator/UserServiceDecorator.php index 784a7d669e..3ad76ad0af 100644 --- a/src/contracts/Repository/Decorator/UserServiceDecorator.php +++ b/src/contracts/Repository/Decorator/UserServiceDecorator.php @@ -245,6 +245,11 @@ public function getPasswordInfo(User $user): PasswordInfo { return $this->innerService->getPasswordInfo($user); } + + public function getUserContentTypeIdentifiers(): array + { + return $this->innerService->getUserContentTypeIdentifiers(); + } } class_alias(UserServiceDecorator::class, 'eZ\Publish\SPI\Repository\Decorator\UserServiceDecorator'); diff --git a/src/contracts/Repository/UserService.php b/src/contracts/Repository/UserService.php index 1d71393409..d915f058c1 100644 --- a/src/contracts/Repository/UserService.php +++ b/src/contracts/Repository/UserService.php @@ -406,6 +406,13 @@ public function validatePassword(string $password, PasswordValidationContext $co * @return \Ibexa\Contracts\Core\Repository\Values\User\PasswordInfo */ public function getPasswordInfo(User $user): PasswordInfo; + + /** + * Returns configured list of User Content Type identifiers. + * + * @return array + */ + public function getUserContentTypeIdentifiers(): array; } class_alias(UserService::class, 'eZ\Publish\API\Repository\UserService'); diff --git a/src/lib/Repository/SiteAccessAware/UserService.php b/src/lib/Repository/SiteAccessAware/UserService.php index b9b18efca6..419236b643 100644 --- a/src/lib/Repository/SiteAccessAware/UserService.php +++ b/src/lib/Repository/SiteAccessAware/UserService.php @@ -227,6 +227,11 @@ public function getPasswordInfo(User $user): PasswordInfo { return $this->service->getPasswordInfo($user); } + + public function getUserContentTypeIdentifiers(): array + { + return $this->service->getUserContentTypeIdentifiers(); + } } class_alias(UserService::class, 'eZ\Publish\Core\Repository\SiteAccessAware\UserService'); diff --git a/src/lib/Repository/UserService.php b/src/lib/Repository/UserService.php index 695bff6f6a..40a738f17f 100644 --- a/src/lib/Repository/UserService.php +++ b/src/lib/Repository/UserService.php @@ -1394,10 +1394,7 @@ private function getDateTime(?int $timestamp): ?DateTimeInterface return null; } - /** - * @return string[] - */ - private function getUserContentTypeIdentifiers(): array + public function getUserContentTypeIdentifiers(): array { return $this->configResolver->getParameter('user_content_type_identifier'); } From 855b3a373494fab8072fbdb73c726a426650b220 Mon Sep 17 00:00:00 2001 From: Andrew Longosz Date: Tue, 23 May 2023 18:02:58 +0200 Subject: [PATCH 2/2] [Tests] Added test coverage for getUserContentTypeIdentifiers API --- tests/integration/Core/Repository/UserServiceTest.php | 6 ++++++ tests/lib/Repository/SiteAccessAware/UserServiceTest.php | 2 ++ 2 files changed, 8 insertions(+) diff --git a/tests/integration/Core/Repository/UserServiceTest.php b/tests/integration/Core/Repository/UserServiceTest.php index 61fd46d42c..16d4c0b414 100644 --- a/tests/integration/Core/Repository/UserServiceTest.php +++ b/tests/integration/Core/Repository/UserServiceTest.php @@ -3265,6 +3265,12 @@ public function testGetPasswordInfoIfExpirationWarningIsDisabled(): void $this->assertEquals(new PasswordInfo($expectedPasswordExpirationDate, null), $passwordInfo); } + public function testGetUserContentTypeIdentifiers(): void + { + $userService = $this->getRepository()->getUserService(); + self::assertEquals(['user'], $userService->getUserContentTypeIdentifiers()); + } + public function createTestUser(ContentType $contentType): User { return $this->createTestUserWithPassword(self::EXAMPLE_PASSWORD, $contentType); diff --git a/tests/lib/Repository/SiteAccessAware/UserServiceTest.php b/tests/lib/Repository/SiteAccessAware/UserServiceTest.php index fc1c3260ed..bc3d677062 100644 --- a/tests/lib/Repository/SiteAccessAware/UserServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/UserServiceTest.php @@ -80,6 +80,8 @@ public function providerForPassTroughMethods() ['checkUserCredentials', [$user, 'H@xi0r!']], ['validatePassword', ['H@xi0r!', $passwordValidationContext], []], ['getPasswordInfo', [$user], new PasswordInfo()], + + ['getUserContentTypeIdentifiers', [], ['user']], ]; }