src/Contact/EventSubscriber/RevokeContactPermissionsSubscriber.php line 61
<?phpdeclare(strict_types=1);/*** Copyright (c) 2019 TECLA Consulting Group oü.* All rights reserved.** This unpublished material is proprietary to TECLA Consulting Group oü.* All rights reserved. The methods and* techniques described herein are considered trade secrets* and/or confidential. Reproduction or distribution, in whole* or in part, is forbidden except by express written permission* of TECLA Consulting Group oü.** @author Matúš Sýkorjak <matus@tecla.no>* @copyright 2019 TECLA Consulting Group oü*/namespace App\Contact\EventSubscriber;use App\Contact\Event\ContactDeletedEvent;use App\Contact\Model\ContactPermissionInterface;use App\Contact\Security\ContactContextInterface;use App\Contact\Service\ContactPermissionService;use Doctrine\ORM\EntityManagerInterface;use JetBrains\PhpStorm\ArrayShape;use Symfony\Component\EventDispatcher\EventSubscriberInterface;class RevokeContactPermissionsSubscriber implements EventSubscriberInterface{/*** @var ContactContextInterface*/private $contactContext;/*** @var ContactPermissionService*/private $contactPermissionService;/*** @var EntityManagerInterface*/private $entityManager;public function __construct(ContactContextInterface $contactContext, ContactPermissionService $contactPermissionService, EntityManagerInterface $entityManager){$this->contactContext = $contactContext;$this->contactPermissionService = $contactPermissionService;$this->entityManager = $entityManager;}#[ArrayShape([ContactDeletedEvent::class => 'string'])]public static function getSubscribedEvents(): array{return [ContactDeletedEvent::class => 'onContactDeleted',];}public function onContactDeleted(ContactDeletedEvent $event): void{$contact = $event->getContact();$authorizedContact = $this->contactContext->getCurrent();if (null !== $authorizedContact) {$repository = $this->entityManager->getRepository(ContactPermissionInterface::class);$contactPermissions = $repository->findBy(['authorizedContact' => $authorizedContact,'contact' => $contact,]);$this->contactPermissionService->deleteCollection($contactPermissions);}}}