2424use Ramsey \Uuid \UuidInterface ;
2525
2626use function array_key_exists ;
27+ use function assert ;
2728use function count ;
2829use function date ;
2930use 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 }
0 commit comments