Ver código fonte

Tester unitaires les extension doctrine + fix phpstan

maha bouchiba 1 ano atrás
pai
commit
da52c3107b

+ 1 - 0
env/.env.docker

@@ -1,6 +1,7 @@
 ###> symfony/framework-bundle ###
 APP_ENV=dev
 APP_DEBUG=1
+APP_SECRET=211cede3dc4b162da3ec2fbdcd905070
 ###< symfony/framework-bundle ###
 
 ###> nelmio/cors-bundle ###

+ 5 - 1
src/Doctrine/Access/AdditionalExtension/DateTimeConstraintExtensionAdditional.php

@@ -29,7 +29,11 @@ class DateTimeConstraintExtensionAdditional implements AdditionalAccessExtension
 
     public function addWhere(QueryBuilder $queryBuilder): void
     {
-        $rootAlias = $queryBuilder->getRootAliases()[0];
+        $rootAliases = $queryBuilder->getRootAliases();
+        if (empty($rootAliases)) {
+            throw new \LogicException('No root alias defined.');
+        }
+        $rootAlias = $rootAliases[0];
         $queryBuilder->innerJoin(sprintf('%s.organizationFunction', $rootAlias), 'organization_function');
     }
 }

+ 21 - 10
src/Doctrine/Access/CurrentAccessExtension.php

@@ -27,16 +27,27 @@ final class CurrentAccessExtension extends AbstractExtension
         return $resourceClass === Access::class;
     }
 
-    public function addWhere(QueryBuilder $queryBuilder, string $resourceClass, ?Operation $operation): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, ?Operation $operation): void
     {
-        /** @var Access $currentUser */
-        $currentUser = $this->security->getUser();
-        $rootAlias = $queryBuilder->getRootAliases()[0];
-        $queryBuilder
-            ->andWhere(sprintf('%s.organization = :current_organization', $rootAlias))
-            ->setParameter('current_organization', $currentUser->getOrganization())
-        ;
-
-        $this->currentAccessExtensionIterator->addWhere($queryBuilder, $operation?->getName());
+        $token = $this->security->getToken();
+        if ($token === null) {
+            return;
+        }
+        $currentUser = $token->getUser();
+        if (!$currentUser instanceof Access) {
+            return;
+        }
+        $organization = $currentUser->getOrganization();
+        $rootAliases = $queryBuilder->getRootAliases();
+        if (empty($rootAliases)) {
+            throw new \LogicException('No root alias defined.');
+        }
+
+        $rootAlias = $rootAliases[0];
+        $queryBuilder->andWhere(sprintf('%s.organization = :current_organization', $rootAlias));
+        $queryBuilder->setParameter('current_organization', $organization);
+
+        $operationName = $operation ? $operation->getName() : '';
+        $this->currentAccessExtensionIterator->addWhere($queryBuilder, $operationName);
     }
 }

+ 5 - 1
src/Doctrine/Access/CurrentUserPersonalizedListExtension.php

@@ -27,7 +27,11 @@ final class CurrentUserPersonalizedListExtension extends AbstractExtension
     protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, ?Operation $operation): void
     {
         $currentUser = $this->security->getUser();
-        $rootAlias = $queryBuilder->getRootAliases()[0];
+        $rootAliases = $queryBuilder->getRootAliases();
+        if (empty($rootAliases)) {
+            throw new \LogicException('No root alias defined.');
+        }
+        $rootAlias = $rootAliases[0];
         $queryBuilder->andWhere(sprintf('%s.access = :current_access', $rootAlias));
         $queryBuilder->setParameter('current_access', $currentUser);
     }

+ 3 - 0
src/Doctrine/Billing/CurrentResidenceAreaExtension.php

@@ -29,6 +29,9 @@ final class CurrentResidenceAreaExtension extends AbstractExtension
     {
         /** @var Access $currentUser */
         $currentUser = $this->security->getUser();
+        if ($currentUser === null || $currentUser->getOrganization() === null) {
+            return;
+        }
         $rootAlias = $queryBuilder->getRootAliases()[0];
         $queryBuilder
             ->andWhere(sprintf('%s.billingSetting = :billingSetting', $rootAlias))

+ 3 - 0
src/Doctrine/Booking/AttendanceBookingReasonExtension.php

@@ -29,6 +29,9 @@ final class AttendanceBookingReasonExtension extends AbstractExtension
     {
         /** @var Access $currentUser */
         $currentUser = $this->security->getUser();
+        if ($currentUser === null || $currentUser->getOrganization() === null) {
+            return;
+        }
         $rootAlias = $queryBuilder->getRootAliases()[0];
         $queryBuilder
             ->andWhere(sprintf('%s.organization = :organization', $rootAlias))

+ 3 - 0
src/Doctrine/Booking/CurrentCoursesExtension.php

@@ -32,6 +32,9 @@ final class CurrentCoursesExtension extends AbstractExtension
     {
         /** @var Access $currentUser */
         $currentUser = $this->security->getUser();
+        if ($currentUser === null || $currentUser->getOrganization() === null) {
+            return;
+        }
         $rootAlias = $queryBuilder->getRootAliases()[0];
         $queryBuilder
             ->andWhere(sprintf('%s.discr = :discr', $rootAlias))

+ 11 - 3
src/Doctrine/Core/AllowedAddressPostalExtension.php

@@ -29,11 +29,19 @@ final class AllowedAddressPostalExtension extends AbstractExtension
     {
         /** @var Access $currentUser */
         $currentUser = $this->security->getUser();
-        $rootAlias = $queryBuilder->getRootAliases()[0];
+        if ($currentUser === null || $currentUser->getOrganization() === null) {
+            return;
+        }
+
+        $rootAliases = $queryBuilder->getRootAliases();
+        if (empty($rootAliases)) {
+            throw new \LogicException('No root alias defined.');
+        }
+
+        $rootAlias = $rootAliases[0];
         $queryBuilder
             ->innerJoin(sprintf('%s.organizationAddressPostal', $rootAlias), 'organization_address_postal')
             ->andWhere('organization_address_postal.organization = :organization')
-            ->setParameter('organization', $currentUser->getOrganization())
-        ;
+            ->setParameter('organization', $currentUser->getOrganization());
     }
 }

+ 3 - 0
src/Doctrine/Core/CurrentUserNotificationExtension.php

@@ -32,6 +32,9 @@ final class CurrentUserNotificationExtension extends AbstractExtension
     {
         /** @var Access $currentUser */
         $currentUser = $this->security->getUser();
+        if ($currentUser === null) {
+            return;
+        }
         $rootAlias = $queryBuilder->getRootAliases()[0];
         $queryBuilder
             ->andWhere(sprintf('%s.recipientAccess = :current_access', $rootAlias))

+ 3 - 0
src/Doctrine/Core/CurrentUserNotificationUserExtension.php

@@ -32,6 +32,9 @@ final class CurrentUserNotificationUserExtension extends AbstractExtension
     {
         /** @var Access $currentUser */
         $currentUser = $this->security->getUser();
+        if ($currentUser === null) {
+            return;
+        }
         $rootAlias = $queryBuilder->getRootAliases()[0];
         $queryBuilder
             ->andWhere(sprintf('%s.access = :current_access', $rootAlias))

+ 3 - 0
src/Doctrine/Education/CurrentCycleExtension.php

@@ -29,6 +29,9 @@ final class CurrentCycleExtension extends AbstractExtension
     {
         /** @var Access $currentUser */
         $currentUser = $this->security->getUser();
+        if ($currentUser === null || $currentUser->getOrganization() === null) {
+            return;
+        }
         $rootAlias = $queryBuilder->getRootAliases()[0];
         $queryBuilder
             ->andWhere(sprintf('%s.organization = :organization', $rootAlias))

+ 3 - 0
src/Doctrine/Education/CurrentEducationNotationConfigExtension.php

@@ -29,6 +29,9 @@ final class CurrentEducationNotationConfigExtension extends AbstractExtension
     {
         /** @var Access $currentUser */
         $currentUser = $this->security->getUser();
+        if ($currentUser === null || $currentUser->getOrganization() === null) {
+            return;
+        }
         $rootAlias = $queryBuilder->getRootAliases()[0];
         $queryBuilder
             ->andWhere(sprintf('%s.organization = :organization', $rootAlias))

+ 3 - 0
src/Doctrine/Education/CurrentEducationTimingExtension.php

@@ -29,6 +29,9 @@ final class CurrentEducationTimingExtension extends AbstractExtension
     {
         /** @var Access $currentUser */
         $currentUser = $this->security->getUser();
+        if ($currentUser === null || $currentUser->getOrganization() === null) {
+            return;
+        }
         $rootAlias = $queryBuilder->getRootAliases()[0];
         $queryBuilder
             ->andWhere(sprintf('%s.organization = :organization', $rootAlias))

+ 3 - 0
src/Doctrine/Network/CurrentNetworkOrganizationExtension.php

@@ -29,6 +29,9 @@ final class CurrentNetworkOrganizationExtension extends AbstractExtension
     {
         /** @var Access $currentUser */
         $currentUser = $this->security->getUser();
+        if ($currentUser === null || $currentUser->getOrganization() === null) {
+            return;
+        }
         $rootAlias = $queryBuilder->getRootAliases()[0];
         $queryBuilder
             ->andWhere(sprintf('%s.organization = :organization', $rootAlias))

+ 3 - 0
src/Doctrine/Organization/CurrentOrganizationExtension.php

@@ -29,6 +29,9 @@ final class CurrentOrganizationExtension extends AbstractExtension
     {
         /** @var Access $currentUser */
         $currentUser = $this->security->getUser();
+        if ($currentUser === null || $currentUser->getOrganization() === null) {
+            return;
+        }
         $rootAlias = $queryBuilder->getRootAliases()[0];
         $queryBuilder
             ->andWhere(sprintf('%s.id = :organization', $rootAlias))

+ 3 - 0
src/Doctrine/Organization/CurrentParentOrganizationExtension.php

@@ -32,6 +32,9 @@ final class CurrentParentOrganizationExtension extends AbstractExtension
     {
         /** @var Access $currentUser */
         $currentUser = $this->security->getUser();
+        if ($currentUser === null || $currentUser->getOrganization() === null) {
+            return;
+        }
         $rootAlias = $queryBuilder->getRootAliases()[0];
         $queryBuilder
             ->andWhere(sprintf('%s.organization = :organization', $rootAlias))

+ 2 - 4
src/Entity/Public/PublicEvent.php

@@ -471,14 +471,12 @@ class PublicEvent
         return $this;
     }
 
-
-    public function getStructureName()
+    public function getStructureName(): string
     {
         return $this->structureName;
     }
 
-
-    public function setStructureName($structureName)
+    public function setStructureName(string $structureName): PublicEvent
     {
         $this->structureName = $structureName;