From a535d8c2a4281070a2c61d0c6f6903bc12d10c59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Gangloff?= Date: Fri, 27 Dec 2024 15:29:16 +0100 Subject: [PATCH] feat: do not register anonymous entities --- src/Entity/Entity.php | 6 ++---- src/Entity/Nameserver.php | 3 ++- src/Service/RDAPService.php | 9 +++++++++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Entity/Entity.php b/src/Entity/Entity.php index 1c99659..2922499 100644 --- a/src/Entity/Entity.php +++ b/src/Entity/Entity.php @@ -2,11 +2,8 @@ namespace App\Entity; -use ApiPlatform\Doctrine\Orm\Filter\SearchFilter; -use ApiPlatform\Metadata\ApiFilter; use ApiPlatform\Metadata\ApiResource; use ApiPlatform\Metadata\Get; -use ApiPlatform\Metadata\GetCollection; use App\Repository\EntityRepository; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; @@ -15,13 +12,14 @@ use Symfony\Component\Serializer\Attribute\Groups; use Symfony\Component\Serializer\Attribute\SerializedName; #[ORM\Entity(repositoryClass: EntityRepository::class)] -#[ApiFilter(SearchFilter::class, properties: ['jCard' => 'partial'])] #[ApiResource( operations: [ + /* new GetCollection( uriTemplate: '/entities', normalizationContext: ['groups' => ['entity:list', 'event:list']] ), + */ new Get( uriTemplate: '/entities/{handle}', normalizationContext: [ diff --git a/src/Entity/Nameserver.php b/src/Entity/Nameserver.php index 26e2390..c8ca140 100644 --- a/src/Entity/Nameserver.php +++ b/src/Entity/Nameserver.php @@ -4,7 +4,6 @@ namespace App\Entity; use ApiPlatform\Metadata\ApiResource; use ApiPlatform\Metadata\Get; -use ApiPlatform\Metadata\GetCollection; use App\Repository\NameserverRepository; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; @@ -15,6 +14,7 @@ use Symfony\Component\Serializer\Attribute\SerializedName; #[ORM\Entity(repositoryClass: NameserverRepository::class)] #[ApiResource( operations: [ + /* new GetCollection( uriTemplate: '/nameservers', normalizationContext: [ @@ -23,6 +23,7 @@ use Symfony\Component\Serializer\Attribute\SerializedName; ], ] ), + */ new Get( uriTemplate: '/nameservers/{ldhName}', normalizationContext: [ diff --git a/src/Service/RDAPService.php b/src/Service/RDAPService.php index 8aa1095..d444e1b 100644 --- a/src/Service/RDAPService.php +++ b/src/Service/RDAPService.php @@ -76,6 +76,11 @@ readonly class RDAPService 'xn--hlcj6aya9esc7a', ]; + public const ENTITY_HANDLE_BLACKLIST = [ + 'REDACTED_FOR_PRIVACY', + 'ANO00-FRNIC', + ]; + public function __construct(private HttpClientInterface $client, private EntityRepository $entityRepository, private DomainRepository $domainRepository, @@ -333,6 +338,10 @@ readonly class RDAPService if (array_key_exists('entities', $rdapData) && is_array($rdapData['entities'])) { foreach ($rdapData['entities'] as $rdapEntity) { + if (array_key_exists('handle', $rdapEntity) && in_array($rdapEntity['handle'], self::ENTITY_HANDLE_BLACKLIST)) { + continue; + } + $roles = $this->extractEntityRoles($rdapData['entities'], $rdapEntity); $entity = $this->registerEntity($rdapEntity, $roles, $domain->getLdhName());