Loading module/Application/config/others/utilisateur.config.php +12 −2 Original line number Diff line number Diff line Loading @@ -10,6 +10,9 @@ use Application\Service\Individu\IndividuServiceFactory; use Application\Service\Utilisateur\UtilisateurService; use UnicaenAuth\Guard\PrivilegeController; use Zend\Mvc\Router\Http\Literal; use Application\Form\Validator\PasswordValidator; use Application\Form\Validator\NewEmailValidator; use Application\Form\Validator\Factory\NewEmailValidatorFactory; return [ 'bjyauthorize' => [ Loading Loading @@ -174,6 +177,13 @@ return [ 'factories' => [ CreationUtilisateurHydrator::class => CreationUtilisateurHydratorFactory::class, ] ] ], 'validators' => [ 'invokables' => [ PasswordValidator::class => PasswordValidator::class, ], 'factories' => [ NewEmailValidator::class => NewEmailValidatorFactory::class, ], ], ]; module/Application/src/Application/Controller/UtilisateurController.php +2 −0 Original line number Diff line number Diff line Loading @@ -320,6 +320,8 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle } else { if ($data['nomPatronymique'] === '') $data['nomPatronymique'] = $data['nomUsuel']; /** @var Individu $individu */ $individu = new Individu(); $individu->setCivilite($data['civilite']); Loading module/Application/src/Application/Form/CreationUtilisateurForm.php +15 −2 Original line number Diff line number Diff line Loading @@ -2,12 +2,15 @@ namespace Application\Form; use Application\Form\Validator\NewEmailValidator; use Application\Form\Validator\PasswordValidator; use Zend\Form\Element\Password; use Zend\Form\Element\Submit; use Zend\Form\Element\Text; use Zend\Form\Element\Hidden; use Zend\Form\Form; use Zend\InputFilter\Factory; use Zend\Mvc\Application; class CreationUtilisateurForm extends Form { Loading Loading @@ -61,7 +64,7 @@ class CreationUtilisateurForm extends Form ], 'nomPatronymique' => [ 'name' => 'nomPatronymique', 'required' => true, 'required' => false, ], 'prenom' => [ 'name' => 'prenom', Loading @@ -70,11 +73,21 @@ class CreationUtilisateurForm extends Form 'email' => [ 'name' => 'email', 'required' => true, // 'validators' => [ // [ // 'name' => NewEmailValidator::class, // ], // ], ], 'password' => [ 'name' =>'password', 'required' => true, ] 'validators' => [ [ 'name' => PasswordValidator::class, ], ], ], ])); } } No newline at end of file module/Application/src/Application/Form/Validator/Factory/NewEmailValidatorFactory.php 0 → 100644 +24 −0 Original line number Diff line number Diff line <?php namespace Application\Form\Validator\Factory; use Application\Form\Validator\NewEmailValidator; use Doctrine\ORM\EntityManager; use Zend\Validator\ValidatorPluginManager; class NewEmailValidatorFactory { public function __invoke(ValidatorPluginManager $validatorPluginManager) { var_dump("Dans la factory"); /** @var EntityManager $entityManager */ $entityManager = $validatorPluginManager->getServiceLocator()->get('doctrine.entitymanager.orm_default'); $validator = new NewEmailValidator(); $validator->setEntityManager($entityManager); return $validator; } } No newline at end of file module/Application/src/Application/Form/Validator/NewEmailValidator.php 0 → 100644 +47 −0 Original line number Diff line number Diff line <?php namespace Application\Form\Validator; use Application\Entity\Db\Individu; use Application\Entity\Db\Utilisateur; use UnicaenApp\Service\EntityManagerAwareTrait; use Zend\Validator\AbstractValidator; class NewEmailValidator extends AbstractValidator { use EntityManagerAwareTrait; const NOT_YET = 'not-yet'; const NOT_EMAIL = 'not-email'; const USER = 'user'; const INDIVIDU = 'individu'; protected $messageTemplates = [ self::NOT_YET => "La méthode est pas implémentée", self::USER => "Email déjà enregistré (Utilisateur)", self::INDIVIDU => "Email déjà enregistré (Individu)", self::NOT_EMAIL => "Email mal formé", ]; public function isValid($value) { $nb_pb = 0; if (!filter_var($value, FILTER_VALIDATE_EMAIL)) { $this->error(self::NOT_EMAIL); $nb_pb++; } if ($this->getEntityManager()->getRepository(Individu::class)->findOneBy(['email' => $value]) !== null) { $this->error(self::INDIVIDU); $nb_pb++; } if ($this->getEntityManager()->getRepository(Utilisateur::class)->findOneBy(['email' => $value]) !== null) { $this->error(self::USER); $nb_pb++; } if ($nb_pb > 0) return false; return true; } } No newline at end of file Loading
module/Application/config/others/utilisateur.config.php +12 −2 Original line number Diff line number Diff line Loading @@ -10,6 +10,9 @@ use Application\Service\Individu\IndividuServiceFactory; use Application\Service\Utilisateur\UtilisateurService; use UnicaenAuth\Guard\PrivilegeController; use Zend\Mvc\Router\Http\Literal; use Application\Form\Validator\PasswordValidator; use Application\Form\Validator\NewEmailValidator; use Application\Form\Validator\Factory\NewEmailValidatorFactory; return [ 'bjyauthorize' => [ Loading Loading @@ -174,6 +177,13 @@ return [ 'factories' => [ CreationUtilisateurHydrator::class => CreationUtilisateurHydratorFactory::class, ] ] ], 'validators' => [ 'invokables' => [ PasswordValidator::class => PasswordValidator::class, ], 'factories' => [ NewEmailValidator::class => NewEmailValidatorFactory::class, ], ], ];
module/Application/src/Application/Controller/UtilisateurController.php +2 −0 Original line number Diff line number Diff line Loading @@ -320,6 +320,8 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle } else { if ($data['nomPatronymique'] === '') $data['nomPatronymique'] = $data['nomUsuel']; /** @var Individu $individu */ $individu = new Individu(); $individu->setCivilite($data['civilite']); Loading
module/Application/src/Application/Form/CreationUtilisateurForm.php +15 −2 Original line number Diff line number Diff line Loading @@ -2,12 +2,15 @@ namespace Application\Form; use Application\Form\Validator\NewEmailValidator; use Application\Form\Validator\PasswordValidator; use Zend\Form\Element\Password; use Zend\Form\Element\Submit; use Zend\Form\Element\Text; use Zend\Form\Element\Hidden; use Zend\Form\Form; use Zend\InputFilter\Factory; use Zend\Mvc\Application; class CreationUtilisateurForm extends Form { Loading Loading @@ -61,7 +64,7 @@ class CreationUtilisateurForm extends Form ], 'nomPatronymique' => [ 'name' => 'nomPatronymique', 'required' => true, 'required' => false, ], 'prenom' => [ 'name' => 'prenom', Loading @@ -70,11 +73,21 @@ class CreationUtilisateurForm extends Form 'email' => [ 'name' => 'email', 'required' => true, // 'validators' => [ // [ // 'name' => NewEmailValidator::class, // ], // ], ], 'password' => [ 'name' =>'password', 'required' => true, ] 'validators' => [ [ 'name' => PasswordValidator::class, ], ], ], ])); } } No newline at end of file
module/Application/src/Application/Form/Validator/Factory/NewEmailValidatorFactory.php 0 → 100644 +24 −0 Original line number Diff line number Diff line <?php namespace Application\Form\Validator\Factory; use Application\Form\Validator\NewEmailValidator; use Doctrine\ORM\EntityManager; use Zend\Validator\ValidatorPluginManager; class NewEmailValidatorFactory { public function __invoke(ValidatorPluginManager $validatorPluginManager) { var_dump("Dans la factory"); /** @var EntityManager $entityManager */ $entityManager = $validatorPluginManager->getServiceLocator()->get('doctrine.entitymanager.orm_default'); $validator = new NewEmailValidator(); $validator->setEntityManager($entityManager); return $validator; } } No newline at end of file
module/Application/src/Application/Form/Validator/NewEmailValidator.php 0 → 100644 +47 −0 Original line number Diff line number Diff line <?php namespace Application\Form\Validator; use Application\Entity\Db\Individu; use Application\Entity\Db\Utilisateur; use UnicaenApp\Service\EntityManagerAwareTrait; use Zend\Validator\AbstractValidator; class NewEmailValidator extends AbstractValidator { use EntityManagerAwareTrait; const NOT_YET = 'not-yet'; const NOT_EMAIL = 'not-email'; const USER = 'user'; const INDIVIDU = 'individu'; protected $messageTemplates = [ self::NOT_YET => "La méthode est pas implémentée", self::USER => "Email déjà enregistré (Utilisateur)", self::INDIVIDU => "Email déjà enregistré (Individu)", self::NOT_EMAIL => "Email mal formé", ]; public function isValid($value) { $nb_pb = 0; if (!filter_var($value, FILTER_VALIDATE_EMAIL)) { $this->error(self::NOT_EMAIL); $nb_pb++; } if ($this->getEntityManager()->getRepository(Individu::class)->findOneBy(['email' => $value]) !== null) { $this->error(self::INDIVIDU); $nb_pb++; } if ($this->getEntityManager()->getRepository(Utilisateur::class)->findOneBy(['email' => $value]) !== null) { $this->error(self::USER); $nb_pb++; } if ($nb_pb > 0) return false; return true; } } No newline at end of file