Commit cf2d9fd6 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Ajout de la route

parent 380f28a1
Loading
Loading
Loading
Loading
Loading
+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
@@ -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',
                    ],
                ],
@@ -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'),
                            ],
                        ],
                    ],
                ],
+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
@@ -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;
@@ -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;
@@ -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();
@@ -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);
                }
            }
        }

+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
+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
@@ -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;
@@ -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")
@@ -68,6 +71,10 @@ class CreationUtilisateurForm extends Form
                'name' => 'email',
                'required' => true,
            ],
            'password' => [
                'name' =>'password',
                'required' => true,
            ]
        ]));
    }
}
 No newline at end of file
+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
@@ -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;
@@ -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