From 2ef5b5f8ef8bec35820367cce2d88ab1c17c7106 Mon Sep 17 00:00:00 2001 From: Gassan Gousseinov Date: Tue, 19 Mar 2024 21:34:33 +0100 Subject: [PATCH] Bug fix: all properties after the first one that is ignored are also considered as ignored. --- src/Provider/Doctrine/Auditing/Annotation/AnnotationLoader.php | 2 +- tests/Provider/Doctrine/DoctrineProviderTest.php | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Provider/Doctrine/Auditing/Annotation/AnnotationLoader.php b/src/Provider/Doctrine/Auditing/Annotation/AnnotationLoader.php index 9856fff6..46154f39 100644 --- a/src/Provider/Doctrine/Auditing/Annotation/AnnotationLoader.php +++ b/src/Provider/Doctrine/Auditing/Annotation/AnnotationLoader.php @@ -84,10 +84,10 @@ private function getEntityConfiguration(ClassMetadata $metadata): ?array private function getAllProperties(ReflectionClass $reflection): array { - $annotationProperty = null; $properties = []; foreach ($reflection->getProperties() as $property) { + $annotationProperty = null; $attributes = $property->getAttributes(Ignore::class); if (\is_array($attributes) && [] !== $attributes) { $annotationProperty = $attributes[0]->newInstance(); diff --git a/tests/Provider/Doctrine/DoctrineProviderTest.php b/tests/Provider/Doctrine/DoctrineProviderTest.php index 4a5163bd..1851168e 100644 --- a/tests/Provider/Doctrine/DoctrineProviderTest.php +++ b/tests/Provider/Doctrine/DoctrineProviderTest.php @@ -436,6 +436,7 @@ public function testLoadEntitiesWithAttributesOnly(): void self::assertFalse($provider->isAuditedField(AuditedEntityWithAttribute::class, 'ignoredField'), 'Field "'.AuditedEntityWithAttribute::class.'::$ignoredField" is ignored.'); self::assertFalse($provider->isAuditedField(AuditedEntityWithAttribute::class, 'ignoredProtectedField'), 'Field "'.AuditedEntityWithAttribute::class.'::$ignoredProtectedField" is ignored.'); self::assertFalse($provider->isAuditedField(AuditedEntityWithAttribute::class, 'ignoredPrivateField'), 'Field "'.AuditedEntityWithAttribute::class.'::$ignoredPrivateField" is ignored.'); + self::assertTrue($provider->isAuditedField(AuditedEntityWithAttribute::class, 'id'), 'Field "'.AuditedEntityWithAttribute::class.'::$id" is audited.'); } #[Depends('testIsAuditedHonorsEnabledFlag')]