From 02c77714b90b2b01b1d65286d15deaabe6ebd186 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Laurent=20L=C3=A9cluse?= <laurent.lecluse@unicaen.fr>
Date: Tue, 21 Mar 2023 10:15:11 +0100
Subject: [PATCH] =?UTF-8?q?-=20Mise=20en=20place=20du=20changelog=20-=20R?=
 =?UTF-8?q?=C3=A9int=C3=A9gration=20de=20l'AssertionFactory,=20=C3=A0=20ut?=
 =?UTF-8?q?iliser=20pour=20les=20assertions=20-=20[Fix]=20erreur=20ns=20\I?=
 =?UTF-8?q?nvalidArgumentException=20:=20\=20ajout=C3=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 CHANGELOG.md                                  |  8 ++++
 .../Assertion/AssertionFactory.php            | 45 +++++++++++++++++++
 .../Privilege/PrivilegeCategorieService.php   |  2 +-
 3 files changed, 54 insertions(+), 1 deletion(-)
 create mode 100755 CHANGELOG.md
 create mode 100644 src/UnicaenPrivilege/Assertion/AssertionFactory.php

diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100755
index 0000000..4093f68
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,8 @@
+Journal des modifications
+=========================
+
+6.0.1 (21/03/2023)
+-----
+- Mise en place du changelog
+- Réintégration de l'AssertionFactory, à utiliser pour les assertions
+- [Fix] erreur ns \InvalidArgumentException : \ ajouté
diff --git a/src/UnicaenPrivilege/Assertion/AssertionFactory.php b/src/UnicaenPrivilege/Assertion/AssertionFactory.php
new file mode 100644
index 0000000..cb721c6
--- /dev/null
+++ b/src/UnicaenPrivilege/Assertion/AssertionFactory.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace UnicaenPrivilege\Assertion;
+
+use BjyAuthorize\Service\Authorize;
+use Psr\Container\ContainerInterface;
+use Laminas\Authentication\AuthenticationService;
+use Laminas\Mvc\Application;
+use Laminas\ServiceManager\Factory\FactoryInterface;
+use UnicaenAuthentification\Service\UserContext;
+
+/**
+ * Class AssertionFactory
+ *
+ * @package UnicaenPrivilege\Assertion
+ */
+class AssertionFactory implements FactoryInterface
+{
+    /**
+     * @param ContainerInterface $container
+     *
+     * @return UserContext
+     */
+    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
+    {
+        /* @var $application Application */
+        $application = $container->get('Application');
+        $mvcEvent    = $application->getMvcEvent();
+
+        /* @var $serviceAuthorize Authorize */
+        $serviceAuthorize = $container->get('BjyAuthorize\Service\Authorize');
+
+        /** @var UserContext $serviceUserContext */
+        $serviceUserContext = $container->get(UserContext::class);
+
+        /* @var $assertion AbstractAssertion */
+        $assertion = new $requestedName;
+
+        $assertion->setMvcEvent($mvcEvent);
+        $assertion->setServiceAuthorize($serviceAuthorize);
+        $assertion->setServiceUserContext($serviceUserContext);
+
+        return $assertion;
+    }
+}
diff --git a/src/UnicaenPrivilege/Service/Privilege/PrivilegeCategorieService.php b/src/UnicaenPrivilege/Service/Privilege/PrivilegeCategorieService.php
index 8e84fa6..d201275 100644
--- a/src/UnicaenPrivilege/Service/Privilege/PrivilegeCategorieService.php
+++ b/src/UnicaenPrivilege/Service/Privilege/PrivilegeCategorieService.php
@@ -16,7 +16,7 @@ class PrivilegeCategorieService extends CommonService
     public function setEntityClass($categorieEntityClass)
     {
         if (! class_exists($categorieEntityClass) || ! in_array(PrivilegeCategorieInterface::class, class_implements($categorieEntityClass))) {
-            throw new InvalidArgumentException("L'entité associée aux catégories de privilège doit implémenter " . PrivilegeCategorieInterface::class);
+            throw new \InvalidArgumentException("L'entité associée aux catégories de privilège doit implémenter " . PrivilegeCategorieInterface::class);
         }
 
         $this->entityClass = $categorieEntityClass;
-- 
GitLab