Loading module/Application/config/others/utilisateur.config.php +41 −0 Changes for module/Application/config/others/utilisateur.config.php: 41 added lines, 0 removed lines. Original line number Diff line number Diff line <?php use Application\Controller\Factory\UtilisateurControllerFactory; use Application\Form\CreationUtilisateurForm; use Application\Form\Factory\CreationUtilisateurFormFactory; use Application\Form\Factory\CreationUtilisateurHydratorFactory; use Application\Form\Hydrator\CreationUtilisateurHydrator; use Application\Provider\Privilege\UtilisateurPrivileges; use Application\Service\Individu\IndividuServiceFactory; use Application\Service\Utilisateur\UtilisateurService; use UnicaenAuth\Guard\PrivilegeController; use Zend\Mvc\Router\Http\Literal; return [ 'bjyauthorize' => [ Loading Loading @@ -42,11 +47,30 @@ return [ ], 'privileges' => UtilisateurPrivileges::UTILISATEUR_ATTRIBUTION_ROLE, ], [ 'controller' => 'Application\Controller\Utilisateur', 'action' => [ 'creation-utilisateur', ], 'privileges' => UtilisateurPrivileges::UTILISATEUR_MODIFICATION, ], ], ], ], 'router' => [ 'routes' => [ 'creation-utilisateur' => [ 'type' => Literal::class, 'options' => [ 'route' => '/creation-utilisateur', 'defaults' => [ '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Utilisateur', 'action' => 'creation-utilisateur', ], ], 'may_terminate' => true, ], 'utilisateur' => [ 'type' => 'Segment', 'options' => [ Loading Loading @@ -99,6 +123,7 @@ return [ ], ], ], ], ], ], Loading @@ -114,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 @@ -135,4 +165,15 @@ return [ 'Application\Controller\Utilisateur' => UtilisateurControllerFactory::class, ], ], 'form_elements' => [ 'factories' => [ CreationUtilisateurForm::class => CreationUtilisateurFormFactory::class ] ], 'hydrators' => [ 'factories' => [ CreationUtilisateurHydrator::class => CreationUtilisateurHydratorFactory::class, ] ] ]; module/Application/src/Application/Controller/Factory/UtilisateurControllerFactory.php +4 −0 Changes for module/Application/src/Application/Controller/Factory/UtilisateurControllerFactory.php: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ use Application\Controller\UtilisateurController; use Application\Service\Individu\IndividuServiceLocateTrait; use Application\Service\Role\RoleService; use Application\Service\Utilisateur\UtilisateurService; use Doctrine\ORM\EntityManager; use UnicaenLdap\Service\People as LdapPeopleService; use Zend\Mvc\Controller\ControllerManager; Loading @@ -21,16 +22,19 @@ class UtilisateurControllerFactory * @var RoleService $roleService * @var UtilisateurService $utilisateurService * @var LdapPeopleService $ldapPeopleService * @var EntityManager $entityManager; */ $roleService = $sl->get('RoleService'); $ldapPeopleService = $sl->get('LdapServicePeople'); $utilisateurService = $sl->get('UtilisateurService'); $entityManager = $sl->get('doctrine.entitymanager.orm_default'); $controller = new UtilisateurController(); $controller->setRoleService($roleService); $controller->setLdapPeopleService($ldapPeopleService); $controller->setUtilisateurService($utilisateurService); $controller->setIndividuService($this->locateIndividuService($sl)); $controller->setEntityManager($entityManager); return $controller; } Loading module/Application/src/Application/Controller/UtilisateurController.php +64 −0 Changes for module/Application/src/Application/Controller/UtilisateurController.php: 64 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,8 +2,10 @@ namespace Application\Controller; use Application\Entity\Db\CreationUtilisateurInfos; use Application\Entity\Db\Role; use Application\Entity\Db\Utilisateur; use Application\Form\CreationUtilisateurForm; use Application\RouteMatch; use Application\Service\Individu\IndividuServiceAwareTrait; use Application\Service\Role\RoleServiceAwareTrait; Loading @@ -16,12 +18,18 @@ use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\Tools\Pagination\Paginator; use DoctrineORMModule\Paginator\Adapter\DoctrinePaginator; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenImport\Entity\Db\Source; 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; use Zend\Form\Form; use Application\Entity\Db\Individu; class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurController { Loading @@ -30,6 +38,7 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle use RoleServiceAwareTrait; use LdapPeopleServiceAwareTrait; use IndividuServiceAwareTrait; use EntityManagerAwareTrait; /** * @return array|\Zend\Http\Response|ViewModel Loading Loading @@ -289,4 +298,59 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle return $role; } public function creationUtilisateurAction() { /** @var Form $form */ $form = $this->getServiceLocator()->get('FormElementManager')->get(CreationUtilisateurForm::class); $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 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(); $individu->setCivilite($data['civilite']); $individu->setNomUsuel($data['nomUsuel']); $individu->setNomPatronymique($data['nomPatronymique']); $individu->setPrenom1($data['prenom']); $individu->setEmail($data['email']); $individu->setSourceCode("COMUE::" . $data['email']); /** @var Utilisateur $utilisateur */ $utilisateur = new Utilisateur(); $utilisateur->setUsername($data['prenom'] . "." . $data['nomUsuel']); $utilisateur->setPassword(password_hash($data['password'], PASSWORD_DEFAULT)); $utilisateur->setState(1); $utilisateur->setEmail($data['email']); $this->individuService->createFromForm($individu, $utilisateur); } } } return new ViewModel([ 'form' => $form, ]); } } No newline at end of file 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 0 → 100644 +80 −0 Changes for module/Application/src/Application/Form/CreationUtilisateurForm.php: 80 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application\Form; 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; class CreationUtilisateurForm extends Form { public function init() { //$this->setObject(new RdvBu()); $this->add( (new Hidden('id')) ); $this->add( (new Text('civilite')) ->setLabel("Civilité :") ); $this->add( (new Text('nomUsuel')) ->setLabel("Nom usuel :") ); $this->add( (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") ->setAttribute('class', 'btn btn-primary') ); $this->setInputFilter((new Factory())->createInputFilter([ 'civilite' => [ 'name' => 'civilite', 'required' => true, ], 'nomUsuel' => [ 'name' => 'nomUsuel', 'required' => true, ], 'nomPatronymique' => [ 'name' => 'nomPatronymique', 'required' => true, ], 'prenom' => [ 'name' => 'prenom', 'required' => true, ], 'email' => [ 'name' => 'email', 'required' => true, ], 'password' => [ 'name' =>'password', 'required' => true, ] ])); } } No newline at end of file Loading
module/Application/config/others/utilisateur.config.php +41 −0 Changes for module/Application/config/others/utilisateur.config.php: 41 added lines, 0 removed lines. Original line number Diff line number Diff line <?php use Application\Controller\Factory\UtilisateurControllerFactory; use Application\Form\CreationUtilisateurForm; use Application\Form\Factory\CreationUtilisateurFormFactory; use Application\Form\Factory\CreationUtilisateurHydratorFactory; use Application\Form\Hydrator\CreationUtilisateurHydrator; use Application\Provider\Privilege\UtilisateurPrivileges; use Application\Service\Individu\IndividuServiceFactory; use Application\Service\Utilisateur\UtilisateurService; use UnicaenAuth\Guard\PrivilegeController; use Zend\Mvc\Router\Http\Literal; return [ 'bjyauthorize' => [ Loading Loading @@ -42,11 +47,30 @@ return [ ], 'privileges' => UtilisateurPrivileges::UTILISATEUR_ATTRIBUTION_ROLE, ], [ 'controller' => 'Application\Controller\Utilisateur', 'action' => [ 'creation-utilisateur', ], 'privileges' => UtilisateurPrivileges::UTILISATEUR_MODIFICATION, ], ], ], ], 'router' => [ 'routes' => [ 'creation-utilisateur' => [ 'type' => Literal::class, 'options' => [ 'route' => '/creation-utilisateur', 'defaults' => [ '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Utilisateur', 'action' => 'creation-utilisateur', ], ], 'may_terminate' => true, ], 'utilisateur' => [ 'type' => 'Segment', 'options' => [ Loading Loading @@ -99,6 +123,7 @@ return [ ], ], ], ], ], ], Loading @@ -114,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 @@ -135,4 +165,15 @@ return [ 'Application\Controller\Utilisateur' => UtilisateurControllerFactory::class, ], ], 'form_elements' => [ 'factories' => [ CreationUtilisateurForm::class => CreationUtilisateurFormFactory::class ] ], 'hydrators' => [ 'factories' => [ CreationUtilisateurHydrator::class => CreationUtilisateurHydratorFactory::class, ] ] ];
module/Application/src/Application/Controller/Factory/UtilisateurControllerFactory.php +4 −0 Changes for module/Application/src/Application/Controller/Factory/UtilisateurControllerFactory.php: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ use Application\Controller\UtilisateurController; use Application\Service\Individu\IndividuServiceLocateTrait; use Application\Service\Role\RoleService; use Application\Service\Utilisateur\UtilisateurService; use Doctrine\ORM\EntityManager; use UnicaenLdap\Service\People as LdapPeopleService; use Zend\Mvc\Controller\ControllerManager; Loading @@ -21,16 +22,19 @@ class UtilisateurControllerFactory * @var RoleService $roleService * @var UtilisateurService $utilisateurService * @var LdapPeopleService $ldapPeopleService * @var EntityManager $entityManager; */ $roleService = $sl->get('RoleService'); $ldapPeopleService = $sl->get('LdapServicePeople'); $utilisateurService = $sl->get('UtilisateurService'); $entityManager = $sl->get('doctrine.entitymanager.orm_default'); $controller = new UtilisateurController(); $controller->setRoleService($roleService); $controller->setLdapPeopleService($ldapPeopleService); $controller->setUtilisateurService($utilisateurService); $controller->setIndividuService($this->locateIndividuService($sl)); $controller->setEntityManager($entityManager); return $controller; } Loading
module/Application/src/Application/Controller/UtilisateurController.php +64 −0 Changes for module/Application/src/Application/Controller/UtilisateurController.php: 64 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,8 +2,10 @@ namespace Application\Controller; use Application\Entity\Db\CreationUtilisateurInfos; use Application\Entity\Db\Role; use Application\Entity\Db\Utilisateur; use Application\Form\CreationUtilisateurForm; use Application\RouteMatch; use Application\Service\Individu\IndividuServiceAwareTrait; use Application\Service\Role\RoleServiceAwareTrait; Loading @@ -16,12 +18,18 @@ use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\Tools\Pagination\Paginator; use DoctrineORMModule\Paginator\Adapter\DoctrinePaginator; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenImport\Entity\Db\Source; 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; use Zend\Form\Form; use Application\Entity\Db\Individu; class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurController { Loading @@ -30,6 +38,7 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle use RoleServiceAwareTrait; use LdapPeopleServiceAwareTrait; use IndividuServiceAwareTrait; use EntityManagerAwareTrait; /** * @return array|\Zend\Http\Response|ViewModel Loading Loading @@ -289,4 +298,59 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle return $role; } public function creationUtilisateurAction() { /** @var Form $form */ $form = $this->getServiceLocator()->get('FormElementManager')->get(CreationUtilisateurForm::class); $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 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(); $individu->setCivilite($data['civilite']); $individu->setNomUsuel($data['nomUsuel']); $individu->setNomPatronymique($data['nomPatronymique']); $individu->setPrenom1($data['prenom']); $individu->setEmail($data['email']); $individu->setSourceCode("COMUE::" . $data['email']); /** @var Utilisateur $utilisateur */ $utilisateur = new Utilisateur(); $utilisateur->setUsername($data['prenom'] . "." . $data['nomUsuel']); $utilisateur->setPassword(password_hash($data['password'], PASSWORD_DEFAULT)); $utilisateur->setState(1); $utilisateur->setEmail($data['email']); $this->individuService->createFromForm($individu, $utilisateur); } } } return new ViewModel([ 'form' => $form, ]); } } No newline at end of file
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 0 → 100644 +80 −0 Changes for module/Application/src/Application/Form/CreationUtilisateurForm.php: 80 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application\Form; 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; class CreationUtilisateurForm extends Form { public function init() { //$this->setObject(new RdvBu()); $this->add( (new Hidden('id')) ); $this->add( (new Text('civilite')) ->setLabel("Civilité :") ); $this->add( (new Text('nomUsuel')) ->setLabel("Nom usuel :") ); $this->add( (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") ->setAttribute('class', 'btn btn-primary') ); $this->setInputFilter((new Factory())->createInputFilter([ 'civilite' => [ 'name' => 'civilite', 'required' => true, ], 'nomUsuel' => [ 'name' => 'nomUsuel', 'required' => true, ], 'nomPatronymique' => [ 'name' => 'nomPatronymique', 'required' => true, ], 'prenom' => [ 'name' => 'prenom', 'required' => true, ], 'email' => [ 'name' => 'email', 'required' => true, ], 'password' => [ 'name' =>'password', 'required' => true, ] ])); } } No newline at end of file