diff --git a/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php b/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php index 2dc947c8b..6f1b770bd 100644 --- a/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php +++ b/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php @@ -4,6 +4,8 @@ declare(strict_types=1); namespace Chill\MainBundle\Security\Resolver; +use Chill\MainBundle\Entity\Center; + final class CenterResolverManager implements CenterResolverManagerInterface { /** @@ -20,7 +22,17 @@ final class CenterResolverManager implements CenterResolverManagerInterface { foreach($this->resolvers as $resolver) { if ($resolver->supports($entity, $options)) { - return (array) $resolver->resolveCenter($entity, $options); + $resolved = $resolver->resolveCenter($entity, $options); + if (null === $resolved) { + return []; + } elseif ($resolved instanceof Center) { + return [$resolved]; + } elseif (\is_array($resolved)) { + return $resolved; + } + + throw new \UnexpectedValueException(sprintf("the return type of a %s should be an instance of %s, an array or null. Resolver is %s", + CenterResolverInterface::class, Center::class, get_class($resolver))); } } diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Entity/person.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Entity/person.html.twig index d0c5670aa..18c03bc92 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Entity/person.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Entity/person.html.twig @@ -149,10 +149,9 @@ {% endif %} {% if options['addCenter'] and person|chill_resolve_center|length > 0 %} - {% set centers = person|chill_resolve_center %}
  • - {% for c in centers %} + {% for c in person|chill_resolve_center %} {{ c.name|upper }}{% if not loop.last %}, {% endif %} {% endfor %}