Skip to content

Commit c5be927

Browse files
committed
Issue #361: Increase PHPStan level to 8
Signed-off-by: alexmerlin <[email protected]>
1 parent e9674d5 commit c5be927

File tree

9 files changed

+33
-14
lines changed

9 files changed

+33
-14
lines changed

phpstan.neon

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ includes:
22
- vendor/phpstan/phpstan-doctrine/extension.neon
33
- vendor/phpstan/phpstan-phpunit/extension.neon
44
parameters:
5-
level: 7
5+
level: 8
66
paths:
77
- bin
88
- config

src/Admin/src/Adapter/AuthenticationAdapter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ public function authenticate(): Result
146146

147147
$adminIdentity = new AdminIdentity(
148148
$identityClass->getUuid()->toString(),
149-
$identityClass->getIdentity(),
149+
(string) $identityClass->getIdentity(),
150150
$identityClass->getStatus(),
151151
$roles,
152152
[

src/Admin/src/Service/AdminService.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public function saveAdmin(array $data, ?Admin $admin = null): Admin
127127
$admin->setStatus($status);
128128
}
129129

130-
$this->validateUniqueAdmin($admin->getIdentity(), $admin->getUuid());
130+
$this->validateUniqueAdmin((string) $admin->getIdentity(), $admin->getUuid());
131131

132132
if (array_key_exists('roles', $data) && count($data['roles']) > 0) {
133133
$admin->resetRoles();

src/Core/src/User/src/Entity/User.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,11 @@ public function getEmail(): string
290290
return trim((string) $this->getDetail()->getEmail());
291291
}
292292

293+
public function hasEmail(): bool
294+
{
295+
return $this->getEmail() !== '';
296+
}
297+
293298
public function getName(): string
294299
{
295300
if (! $this->getDetail() instanceof UserDetail) {

src/User/src/Handler/PostUserCreateHandler.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public function handle(ServerRequestInterface $request): ResponseInterface
7070
$data = $this->createUserForm->getData();
7171
$user = $this->userService->saveUser($data);
7272
$this->messenger->addSuccess(Message::USER_CREATED);
73-
if ($user->getDetail()->hasEmail()) {
73+
if ($user->hasEmail()) {
7474
$body = $this->template->render('user::welcome', [
7575
'config' => $this->config,
7676
'user' => $user,
@@ -94,7 +94,7 @@ public function handle(ServerRequestInterface $request): ResponseInterface
9494
'line' => $exception->getLine(),
9595
'trace' => $exception->getTraceAsString(),
9696
]);
97-
$this->messenger->addError(Message::mailNotSentTo($user->getDetail()->getEmail()));
97+
$this->messenger->addError(Message::mailNotSentTo($user->getEmail()));
9898
return new EmptyResponse(StatusCodeInterface::STATUS_CREATED);
9999
} catch (BadRequestException | ConflictException | NotFoundException $exception) {
100100
return new HtmlResponse(

src/User/src/Service/UserService.php

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
use Ramsey\Uuid\UuidInterface;
2525

2626
use function array_key_exists;
27+
use function assert;
2728
use function count;
2829
use function date;
2930
use function in_array;
@@ -91,6 +92,9 @@ public function findByEmail(string $email): User
9192
}
9293

9394
$user = $userDetail->getUser();
95+
if (! $user instanceof User) {
96+
throw new NotFoundException(Message::USER_NOT_FOUND);
97+
}
9498
if ($user->isDeleted()) {
9599
throw new NotFoundException(Message::USER_NOT_FOUND);
96100
}
@@ -183,6 +187,7 @@ public function saveUser(array $data, ?User $user = null): User
183187
if (! $user->hasDetail()) {
184188
$user->setDetail((new UserDetail())->setUser($user));
185189
}
190+
assert($user->getDetail() instanceof UserDetail);
186191
if (array_key_exists('firstName', $data['detail']) && $data['detail']['firstName'] !== null) {
187192
$user->getDetail()->setFirstname($data['detail']['firstName']);
188193
}
@@ -194,7 +199,7 @@ public function saveUser(array $data, ?User $user = null): User
194199
}
195200
}
196201

197-
$this->validateUniqueUser($user->getIdentity(), $user->getDetail()->getEmail(), $user->getUuid());
202+
$this->validateUniqueUser((string) $user->getIdentity(), $user->getEmail(), $user->getUuid());
198203

199204
if (array_key_exists('roles', $data) && count($data['roles']) > 0) {
200205
$user->resetRoles();
@@ -222,11 +227,15 @@ private function anonymizeUser(User $user): User
222227

223228
$user
224229
->setStatus(UserStatusEnum::Deleted)
225-
->setIdentity($placeholder . $this->config['userAnonymizeAppend'])
226-
->getDetail()
227-
->setFirstName($placeholder)
228-
->setLastName($placeholder)
229-
->setEmail($placeholder);
230+
->setIdentity($placeholder . $this->config['userAnonymizeAppend']);
231+
if ($user->hasDetail()) {
232+
assert($user->getDetail() instanceof UserDetail);
233+
$user
234+
->getDetail()
235+
->setFirstName($placeholder)
236+
->setLastName($placeholder)
237+
->setEmail($placeholder);
238+
}
230239

231240
$this->userRepository->saveResource($user);
232241

@@ -243,7 +252,7 @@ private function getAnonymousPlaceholder(): string
243252

244253
private function revokeTokens(User $user): void
245254
{
246-
$accessTokens = $this->oAuthAccessTokenRepository->findAccessTokens($user->getIdentity());
255+
$accessTokens = $this->oAuthAccessTokenRepository->findAccessTokens((string) $user->getIdentity());
247256
foreach ($accessTokens as $accessToken) {
248257
$this->oAuthAccessTokenRepository->revokeAccessToken($accessToken->getToken());
249258
$this->oAuthRefreshTokenRepository->revokeRefreshToken($accessToken->getToken());
@@ -270,6 +279,7 @@ private function validateUniqueUser(string $identity, string $email, ?UuidInterf
270279
if ($uuid === null) {
271280
throw new ConflictException(Message::DUPLICATE_EMAIL);
272281
}
282+
assert($userDetail->getUser() instanceof User);
273283
if ($userDetail->getUser()->getUuid()->toString() !== $uuid->toString()) {
274284
throw new ConflictException(Message::DUPLICATE_EMAIL);
275285
}

test/Common/TestCase.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace AdminTest\Common;
66

7-
use Doctrine\ORM\EntityManager;
87
use Doctrine\ORM\EntityManagerInterface;
98
use Psr\Container\ContainerExceptionInterface;
109
use Psr\Container\ContainerInterface;
@@ -49,6 +48,7 @@ protected function getContainer(): ContainerInterface
4948
if (! $this->container instanceof ContainerInterface) {
5049
$this->container = require realpath(__DIR__ . '/../../config/container.php');
5150
}
51+
$this->assertInstanceOf(ContainerInterface::class, $this->container);
5252

5353
return $this->container;
5454
}
@@ -60,8 +60,9 @@ protected function getContainer(): ContainerInterface
6060
protected function getEntityManager(): EntityManagerInterface
6161
{
6262
if (! $this->entityManager instanceof EntityManagerInterface) {
63-
$this->entityManager = $this->getContainer()->get(EntityManager::class);
63+
$this->entityManager = $this->getContainer()->get(EntityManagerInterface::class);
6464
}
65+
$this->assertInstanceOf(EntityManagerInterface::class, $this->entityManager);
6566

6667
return $this->entityManager;
6768
}

test/Functional/FunctionalTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ protected function getApp(): Application
4040
if (! $this->app instanceof Application) {
4141
$this->app = $this->getContainer()->get(Application::class);
4242
}
43+
$this->assertInstanceOf(Application::class, $this->app);
4344

4445
return $this->app;
4546
}

test/Unit/Admin/Entity/AdminLoginTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ public function testAccessors(): void
8080
$this->assertSame(YesNoEnum::No, $adminLogin->getIsMobile());
8181
$adminLogin = $adminLogin->setIsMobile(YesNoEnum::Yes);
8282
$this->assertSame(AdminLogin::class, $adminLogin::class);
83+
$this->assertNotNull($adminLogin->getIsMobile());
8384
$this->assertSame('yes', $adminLogin->getIsMobile()->value);
8485

8586
$this->assertNull($adminLogin->getOsName());
@@ -120,6 +121,7 @@ public function testAccessors(): void
120121
$this->assertSame(SuccessFailureEnum::Fail, $adminLogin->getLoginStatus());
121122
$adminLogin = $adminLogin->setLoginStatus(SuccessFailureEnum::Success);
122123
$this->assertSame(AdminLogin::class, $adminLogin::class);
124+
$this->assertNotNull($adminLogin->getLoginStatus());
123125
$this->assertSame('success', $adminLogin->getLoginStatus()->value);
124126

125127
$this->assertNull($adminLogin->getIdentity());

0 commit comments

Comments
 (0)