Loading module/Application/config/others/utilisateur.config.php +7 −2 Changes for module/Application/config/others/utilisateur.config.php: 7 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -62,10 +62,10 @@ return [ 'creation-utilisateur' => [ 'type' => Literal::class, 'options' => [ '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Utilisateur', 'route' => '/creation-utilisateur', 'defaults' => [ '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Utilisateur', 'action' => 'creation-utilisateur', ], ], Loading Loading @@ -139,6 +139,11 @@ return [ 'route' => 'utilisateur', 'resource' => PrivilegeController::getResourceId('Application\Controller\Utilisateur', 'index'), ], 'creation' => [ 'label' => 'Création d\'utilisateur', 'route' => 'creation-utilisateur', 'resource' => PrivilegeController::getResourceId('Application\Controller\Utilisateur', 'creation-utilisateur'), ], ], ], ], Loading module/Application/src/Application/Controller/UtilisateurController.php +23 −15 Changes for module/Application/src/Application/Controller/UtilisateurController.php: 23 added lines, 15 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Application\Controller; use Application\Entity\Db\CreationUtilisateurInfos; use Application\Entity\Db\Role; use Application\Entity\Db\Utilisateur; use Application\Form\CreationUtilisateurForm; Loading @@ -23,6 +24,7 @@ use UnicaenLdap\Entity\People; use UnicaenLdap\Filter\People as LdapPeopleFilter; use UnicaenLdap\Service\LdapPeopleServiceAwareTrait; use UnicaenLdap\Service\People as LdapPeopleService; use Zend\Db\Sql\Predicate\In; use Zend\View\Model\JsonModel; use Zend\View\Model\ViewModel; use Zend\Http\Request; Loading Loading @@ -301,18 +303,29 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle { /** @var Form $form */ $form = $this->getServiceLocator()->get('FormElementManager')->get(CreationUtilisateurForm::class); $individu = null; $infos = new CreationUtilisateurInfos(); $form->bind($infos); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { /** @var Source $source */ $source = $this->getEntityManager()->getRepository(Source::class)->findOneBy(["code" => 'COMUE::SYGAL']); $user = $this->getEntityManager()->getRepository(Utilisateur::class)->findOneBy(["username" => 'sygal-app']); /** @var CreationUtilisateurInfos $info */ // Le mail va servir de verification de la présence d'un utilisateur et d'un individu en db // todo utiliser la fonction dédiée de doctrine après la POC if ($this->individuService->existIndividuUtilisateurByEmail($data['email'])) { var_dump("mail déjà en base"); //die("Problème de présence de l'entité en base"); } else { /** @var Individu $individu */ $individu = new Individu(); Loading @@ -321,22 +334,17 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle $individu->setNomPatronymique($data['nomPatronymique']); $individu->setPrenom1($data['prenom']); $individu->setEmail($data['email']); $individu->setSourceCode("COMUE::".$data['prenom'].".".$data['nomUsuel']); $individu->setSource($source); //COMUE::SyGAL $individu->setHistoCreateur($user); //sygal-app $individu->setHistoModificateur($user); //sygal-app $this->getEntityManager()->persist($individu); $this->getEntityManager()->flush($individu); $individu->setSourceCode("COMUE::" . $data['email']); /** @var Utilisateur $utilisateur */ $utilisateur = new Utilisateur(); $utilisateur->setUsername($data['prenom'] . "." . $data['nomUsuel']); $utilisateur->setPassword('db'); $utilisateur->setPassword(password_hash($data['password'], PASSWORD_DEFAULT)); $utilisateur->setState(1); $this->getEntityManager()->persist($utilisateur); $this->getEntityManager()->flush($utilisateur); $utilisateur->setEmail($data['email']); $this->individuService->createFromForm($individu, $utilisateur); } } } Loading module/Application/src/Application/Entity/Db/CreationUtilisateurInfos.php 0 → 100644 +132 −0 Changes for module/Application/src/Application/Entity/Db/CreationUtilisateurInfos.php: 132 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application\Entity\Db; class CreationUtilisateurInfos { /** @var string */ protected $civilite; /** @var string */ protected $nomUsuel; /** @var string */ protected $nomPatronymique; /** @var string */ protected $prenom; /** @var string */ protected $email; /** @var string */ protected $password; /** * @return string */ public function getCivilite() { return $this->civilite; } /** * @param string $civilite * @return CreationUtilisateurInfos */ public function setCivilite($civilite) { $this->civilite = $civilite; return $this; } /** * @return string */ public function getNomUsuel() { return $this->nomUsuel; } /** * @param string $nomUsuel * @return CreationUtilisateurInfos */ public function setNomUsuel($nomUsuel) { $this->nomUsuel = $nomUsuel; return $this; } /** * @return string */ public function getNomPatronymique() { return $this->nomPatronymique; } /** * @param string $nomPatronymique * @return CreationUtilisateurInfos */ public function setNomPatronymique($nomPatronymique) { $this->nomPatronymique = $nomPatronymique; return $this; } /** * @return string */ public function getPrenom() { return $this->prenom; } /** * @param string $prenom * @return CreationUtilisateurInfos */ public function setPrenom($prenom) { $this->prenom = $prenom; return $this; } /** * @return string */ public function getEmail() { return $this->email; } /** * @param string $email * @return CreationUtilisateurInfos */ public function setEmail($email) { $this->email = $email; return $this; } /** * @return string */ public function getPassword() { return $this->password; } /** * @param string $password * @return CreationUtilisateurInfos */ public function setPassword($password) { $this->password = $password; return $this; } } No newline at end of file module/Application/src/Application/Form/CreationUtilisateurForm.php +9 −2 Changes for module/Application/src/Application/Form/CreationUtilisateurForm.php: 9 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Application\Form; use Zend\Form\Element\Password; use Zend\Form\Element\Submit; use Zend\Form\Element\Text; use Zend\Form\Element\Hidden; Loading Loading @@ -31,16 +32,18 @@ class CreationUtilisateurForm extends Form (new Text('nomPatronymique')) ->setLabel("Nom Patronymique :") ); $this->add( (new Text('prenom')) ->setLabel("Prénom :") ); $this->add( (new Text('email')) ->setLabel("Email :") ); $this->add( (new Password('password')) ->setLabel("Mot de passe :") ); $this->add((new Submit('submit')) ->setValue("Enregistrer") Loading Loading @@ -68,6 +71,10 @@ class CreationUtilisateurForm extends Form 'name' => 'email', 'required' => true, ], 'password' => [ 'name' =>'password', 'required' => true, ] ])); } } No newline at end of file module/Application/src/Application/Form/Hydrator/CreationUtilisateurHydrator.php +19 −20 Changes for module/Application/src/Application/Form/Hydrator/CreationUtilisateurHydrator.php: 19 added lines, 20 removed lines. Original line number Diff line number Diff line Loading @@ -2,10 +2,7 @@ namespace Application\Form\Hydrator; use Application\Entity\Db\Individu; use Application\Entity\Db\Utilisateur; use Application\Entity\Db\Diffusion; use Application\Entity\Db\RecapBu; use Application\Entity\Db\CreationUtilisateurInfos; use Doctrine\ORM\OptimisticLockException; use UnicaenApp\Service\EntityManagerAwareInterface; use UnicaenApp\Service\EntityManagerAwareTrait; Loading @@ -17,33 +14,35 @@ class CreationUtilisateurHydrator implements HydratorInterface, EntityManagerAwa /** * @param array $data * @param Individu $individu * @return Individu * @param CreationUtilisateurInfos $infos * @return CreationUtilisateurInfos * @throws OptimisticLockException */ public function hydrate(array $data, $individu) { public function hydrate(array $data, $infos) { $individu->setCivilite($data['civilite']); $individu->setNomUsuel($data['nomUsuel']); $individu->setNomPatronymique($data['nomPatronymique']); $individu->setPrenom1($data['prenom']); $individu->setEmail($data['email']); $infos->setCivilite($data['civilite']); $infos->setNomUsuel($data['nomUsuel']); $infos->setNomPatronymique($data['nomPatronymique']); $infos->setPrenom($data['prenom']); $infos->setEmail($data['email']); $infos->setPassword($data['password']); return $individu; return $infos; } /** * @param Individu $individu * @param CreationUtilisateurInfos $infos * @return array */ public function extract($individu) { public function extract($infos) { $data = []; $data['civilite'] = $individu->getCivilite(); $data['nomUsuel'] = $individu->getNomUsuel(); $data['nomPatronymique'] = $individu->getNomPatronymique(); $data['prenom'] = $individu->getPrenom1(); $data['email'] = $individu->getEmail(); $data['civilite'] = $infos->getCivilite(); $data['nomUsuel'] = $infos->getNomUsuel(); $data['nomPatronymique'] = $infos->getNomPatronymique(); $data['prenom'] = $infos->getPrenom(); $data['email'] = $infos->getEmail(); $data['password'] = $infos->getPassword(); return $data; } Loading Loading
module/Application/config/others/utilisateur.config.php +7 −2 Changes for module/Application/config/others/utilisateur.config.php: 7 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -62,10 +62,10 @@ return [ 'creation-utilisateur' => [ 'type' => Literal::class, 'options' => [ '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Utilisateur', 'route' => '/creation-utilisateur', 'defaults' => [ '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Utilisateur', 'action' => 'creation-utilisateur', ], ], Loading Loading @@ -139,6 +139,11 @@ return [ 'route' => 'utilisateur', 'resource' => PrivilegeController::getResourceId('Application\Controller\Utilisateur', 'index'), ], 'creation' => [ 'label' => 'Création d\'utilisateur', 'route' => 'creation-utilisateur', 'resource' => PrivilegeController::getResourceId('Application\Controller\Utilisateur', 'creation-utilisateur'), ], ], ], ], Loading
module/Application/src/Application/Controller/UtilisateurController.php +23 −15 Changes for module/Application/src/Application/Controller/UtilisateurController.php: 23 added lines, 15 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Application\Controller; use Application\Entity\Db\CreationUtilisateurInfos; use Application\Entity\Db\Role; use Application\Entity\Db\Utilisateur; use Application\Form\CreationUtilisateurForm; Loading @@ -23,6 +24,7 @@ use UnicaenLdap\Entity\People; use UnicaenLdap\Filter\People as LdapPeopleFilter; use UnicaenLdap\Service\LdapPeopleServiceAwareTrait; use UnicaenLdap\Service\People as LdapPeopleService; use Zend\Db\Sql\Predicate\In; use Zend\View\Model\JsonModel; use Zend\View\Model\ViewModel; use Zend\Http\Request; Loading Loading @@ -301,18 +303,29 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle { /** @var Form $form */ $form = $this->getServiceLocator()->get('FormElementManager')->get(CreationUtilisateurForm::class); $individu = null; $infos = new CreationUtilisateurInfos(); $form->bind($infos); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { /** @var Source $source */ $source = $this->getEntityManager()->getRepository(Source::class)->findOneBy(["code" => 'COMUE::SYGAL']); $user = $this->getEntityManager()->getRepository(Utilisateur::class)->findOneBy(["username" => 'sygal-app']); /** @var CreationUtilisateurInfos $info */ // Le mail va servir de verification de la présence d'un utilisateur et d'un individu en db // todo utiliser la fonction dédiée de doctrine après la POC if ($this->individuService->existIndividuUtilisateurByEmail($data['email'])) { var_dump("mail déjà en base"); //die("Problème de présence de l'entité en base"); } else { /** @var Individu $individu */ $individu = new Individu(); Loading @@ -321,22 +334,17 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle $individu->setNomPatronymique($data['nomPatronymique']); $individu->setPrenom1($data['prenom']); $individu->setEmail($data['email']); $individu->setSourceCode("COMUE::".$data['prenom'].".".$data['nomUsuel']); $individu->setSource($source); //COMUE::SyGAL $individu->setHistoCreateur($user); //sygal-app $individu->setHistoModificateur($user); //sygal-app $this->getEntityManager()->persist($individu); $this->getEntityManager()->flush($individu); $individu->setSourceCode("COMUE::" . $data['email']); /** @var Utilisateur $utilisateur */ $utilisateur = new Utilisateur(); $utilisateur->setUsername($data['prenom'] . "." . $data['nomUsuel']); $utilisateur->setPassword('db'); $utilisateur->setPassword(password_hash($data['password'], PASSWORD_DEFAULT)); $utilisateur->setState(1); $this->getEntityManager()->persist($utilisateur); $this->getEntityManager()->flush($utilisateur); $utilisateur->setEmail($data['email']); $this->individuService->createFromForm($individu, $utilisateur); } } } Loading
module/Application/src/Application/Entity/Db/CreationUtilisateurInfos.php 0 → 100644 +132 −0 Changes for module/Application/src/Application/Entity/Db/CreationUtilisateurInfos.php: 132 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application\Entity\Db; class CreationUtilisateurInfos { /** @var string */ protected $civilite; /** @var string */ protected $nomUsuel; /** @var string */ protected $nomPatronymique; /** @var string */ protected $prenom; /** @var string */ protected $email; /** @var string */ protected $password; /** * @return string */ public function getCivilite() { return $this->civilite; } /** * @param string $civilite * @return CreationUtilisateurInfos */ public function setCivilite($civilite) { $this->civilite = $civilite; return $this; } /** * @return string */ public function getNomUsuel() { return $this->nomUsuel; } /** * @param string $nomUsuel * @return CreationUtilisateurInfos */ public function setNomUsuel($nomUsuel) { $this->nomUsuel = $nomUsuel; return $this; } /** * @return string */ public function getNomPatronymique() { return $this->nomPatronymique; } /** * @param string $nomPatronymique * @return CreationUtilisateurInfos */ public function setNomPatronymique($nomPatronymique) { $this->nomPatronymique = $nomPatronymique; return $this; } /** * @return string */ public function getPrenom() { return $this->prenom; } /** * @param string $prenom * @return CreationUtilisateurInfos */ public function setPrenom($prenom) { $this->prenom = $prenom; return $this; } /** * @return string */ public function getEmail() { return $this->email; } /** * @param string $email * @return CreationUtilisateurInfos */ public function setEmail($email) { $this->email = $email; return $this; } /** * @return string */ public function getPassword() { return $this->password; } /** * @param string $password * @return CreationUtilisateurInfos */ public function setPassword($password) { $this->password = $password; return $this; } } No newline at end of file
module/Application/src/Application/Form/CreationUtilisateurForm.php +9 −2 Changes for module/Application/src/Application/Form/CreationUtilisateurForm.php: 9 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Application\Form; use Zend\Form\Element\Password; use Zend\Form\Element\Submit; use Zend\Form\Element\Text; use Zend\Form\Element\Hidden; Loading Loading @@ -31,16 +32,18 @@ class CreationUtilisateurForm extends Form (new Text('nomPatronymique')) ->setLabel("Nom Patronymique :") ); $this->add( (new Text('prenom')) ->setLabel("Prénom :") ); $this->add( (new Text('email')) ->setLabel("Email :") ); $this->add( (new Password('password')) ->setLabel("Mot de passe :") ); $this->add((new Submit('submit')) ->setValue("Enregistrer") Loading Loading @@ -68,6 +71,10 @@ class CreationUtilisateurForm extends Form 'name' => 'email', 'required' => true, ], 'password' => [ 'name' =>'password', 'required' => true, ] ])); } } No newline at end of file
module/Application/src/Application/Form/Hydrator/CreationUtilisateurHydrator.php +19 −20 Changes for module/Application/src/Application/Form/Hydrator/CreationUtilisateurHydrator.php: 19 added lines, 20 removed lines. Original line number Diff line number Diff line Loading @@ -2,10 +2,7 @@ namespace Application\Form\Hydrator; use Application\Entity\Db\Individu; use Application\Entity\Db\Utilisateur; use Application\Entity\Db\Diffusion; use Application\Entity\Db\RecapBu; use Application\Entity\Db\CreationUtilisateurInfos; use Doctrine\ORM\OptimisticLockException; use UnicaenApp\Service\EntityManagerAwareInterface; use UnicaenApp\Service\EntityManagerAwareTrait; Loading @@ -17,33 +14,35 @@ class CreationUtilisateurHydrator implements HydratorInterface, EntityManagerAwa /** * @param array $data * @param Individu $individu * @return Individu * @param CreationUtilisateurInfos $infos * @return CreationUtilisateurInfos * @throws OptimisticLockException */ public function hydrate(array $data, $individu) { public function hydrate(array $data, $infos) { $individu->setCivilite($data['civilite']); $individu->setNomUsuel($data['nomUsuel']); $individu->setNomPatronymique($data['nomPatronymique']); $individu->setPrenom1($data['prenom']); $individu->setEmail($data['email']); $infos->setCivilite($data['civilite']); $infos->setNomUsuel($data['nomUsuel']); $infos->setNomPatronymique($data['nomPatronymique']); $infos->setPrenom($data['prenom']); $infos->setEmail($data['email']); $infos->setPassword($data['password']); return $individu; return $infos; } /** * @param Individu $individu * @param CreationUtilisateurInfos $infos * @return array */ public function extract($individu) { public function extract($infos) { $data = []; $data['civilite'] = $individu->getCivilite(); $data['nomUsuel'] = $individu->getNomUsuel(); $data['nomPatronymique'] = $individu->getNomPatronymique(); $data['prenom'] = $individu->getPrenom1(); $data['email'] = $individu->getEmail(); $data['civilite'] = $infos->getCivilite(); $data['nomUsuel'] = $infos->getNomUsuel(); $data['nomPatronymique'] = $infos->getNomPatronymique(); $data['prenom'] = $infos->getPrenom(); $data['email'] = $infos->getEmail(); $data['password'] = $infos->getPassword(); return $data; } Loading