From 27df3b2c9b57656972e629232c93d8b72b28ed8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Tue, 24 Sep 2024 10:58:01 +0200 Subject: [PATCH] Add support for ManagerAwareCenterResolverInterface Introduce ManagerAwareCenterResolverInterface to ensure resolvers can reference their manager. Added a trait for implementing the interface and updated the CenterResolverManager to initialize resolvers correctly. --- .../Resolver/CenterResolverManager.php | 9 +++++++- .../ManagerAwareCenterResolverInterface.php | 22 +++++++++++++++++++ .../ManagerAwareCenterResolverTrait.php | 22 +++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 src/Bundle/ChillMainBundle/Security/Resolver/ManagerAwareCenterResolverInterface.php create mode 100644 src/Bundle/ChillMainBundle/Security/Resolver/ManagerAwareCenterResolverTrait.php diff --git a/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php b/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php index f629459b4..813ab1526 100644 --- a/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php +++ b/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php @@ -18,7 +18,14 @@ final readonly class CenterResolverManager implements CenterResolverManagerInter /** * @param \Chill\MainBundle\Security\Resolver\CenterResolverInterface[] $resolvers */ - public function __construct(private iterable $resolvers = []) {} + public function __construct(private iterable $resolvers = []) + { + foreach ($resolvers as $resolver) { + if ($resolver instanceof ManagerAwareCenterResolverInterface) { + $resolver->setResolverManager($this); + } + } + } public function resolveCenters($entity, ?array $options = []): array { diff --git a/src/Bundle/ChillMainBundle/Security/Resolver/ManagerAwareCenterResolverInterface.php b/src/Bundle/ChillMainBundle/Security/Resolver/ManagerAwareCenterResolverInterface.php new file mode 100644 index 000000000..eae7ae964 --- /dev/null +++ b/src/Bundle/ChillMainBundle/Security/Resolver/ManagerAwareCenterResolverInterface.php @@ -0,0 +1,22 @@ +centerResolverManager = $manager; + } +}