diff --git a/Classes/Package.php b/Classes/Package.php new file mode 100644 index 0000000..2ee5294 --- /dev/null +++ b/Classes/Package.php @@ -0,0 +1,57 @@ +getSignalSlotDispatcher(); + $dispatcher->connect( + UserService::class, + 'userDeleted', + function (User $user) use ($bootstrap) { + $accountAuthorizationRepository = $bootstrap->getObjectManager()->get(AccountAuthorizationRepository::class); + $entityManager = $bootstrap->getObjectManager()->get(EntityManagerInterface::class); + + foreach ($user->getAccounts() as $account) { + $accountAuthorization = $accountAuthorizationRepository->findOneByFlowAccountIdentifier($account->getAccountIdentifier()); + if ($accountAuthorization !== null) { + $authorizationId = $accountAuthorization->getAuthorizationId(); + $authorization = $entityManager->find(Authorization::class, ['authorizationId' => $authorizationId]); + if ($authorization instanceof Authorization) { + $entityManager->remove($authorization); + } + + $accountAuthorizationRepository->remove($accountAuthorization); + } + } + }, + '', + false + ); + } +}