diff --git a/CHANGELOG.md b/CHANGELOG.md index 518fcabb9..4fad2c948 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ and this project adheres to * refactor `AuthorizationHelper` and `UserACLAwareRepository` to fix constructor, and separate logic for parent role helper into `ParentRoleHelper` * [main]: filter location and locationType in backend: exclude NULL names, only active and availableToUsers * [activity]: perform client-side validation & show/hide fields in the "new location" modal +* [person]: normalize person with CenterResolverDispatcher and handle case where center is null or multiple in PersonRenderBox * [docstore] voter for PersonDocument and AccompanyingCourseDocument on the 2.0 way (using VoterHelperFactory) * [docstore] add authorization check inside controller and menu * [activity]: fix inheritance for role `ACTIVITY FULL` and add missing acl in menu @@ -38,6 +39,7 @@ and this project adheres to * [socialWorkAction]: display of social issue and parent issues + banner context added. * [DBAL dependencies] Upgrade to DBAL 3.1 + ## Test releases diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/Entity/PersonRenderBox.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/Entity/PersonRenderBox.vue index 89ff6886f..eb7793839 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/Entity/PersonRenderBox.vue +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/Entity/PersonRenderBox.vue @@ -78,7 +78,7 @@ {{ $t('renderbox.no_data') }}

- +
  • {{ person.mobilenumber }} @@ -97,8 +97,13 @@
  • - - {{ person.center.name }} + + +
  • diff --git a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonNormalizer.php b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonNormalizer.php index 2b82780c2..d0bdba9f5 100644 --- a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonNormalizer.php +++ b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonNormalizer.php @@ -19,6 +19,7 @@ namespace Chill\PersonBundle\Serializer\Normalizer; use Chill\MainBundle\Entity\Center; +use Chill\MainBundle\Security\Resolver\CenterResolverDispatcher; use Chill\PersonBundle\Entity\Household\Household; use Chill\PersonBundle\Entity\Person; use Symfony\Component\Serializer\Normalizer\DenormalizerAwareInterface; @@ -48,16 +49,22 @@ class PersonNormalizer implements private PersonRepository $repository; + private CenterResolverDispatcher $centerResolverDispatcher; + use NormalizerAwareTrait; use ObjectToPopulateTrait; use DenormalizerAwareTrait; - public function __construct(ChillEntityRenderExtension $render, PersonRepository $repository) - { + public function __construct( + ChillEntityRenderExtension $render, + PersonRepository $repository, + CenterResolverDispatcher $centerResolverDispatcher + ) { $this->render = $render; $this->repository = $repository; + $this->centerResolverDispatcher = $centerResolverDispatcher; } public function normalize($person, string $format = null, array $context = array()) @@ -74,7 +81,7 @@ class PersonNormalizer implements 'lastName' => $person->getLastName(), 'birthdate' => $this->normalizer->normalize($person->getBirthdate()), 'deathdate' => $this->normalizer->normalize($person->getDeathdate()), - 'center' => $this->normalizer->normalize($person->getCenter()), + 'center' => $this->normalizer->normalize($this->centerResolverDispatcher->resolveCenter($person)), 'phonenumber' => $person->getPhonenumber(), 'mobilenumber' => $person->getMobilenumber(), 'altNames' => $this->normalizeAltNames($person->getAltNames()),