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

Creation en base et hydration

parent 073a9b4d
Loading
Loading
Loading
Loading
Loading
+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
@@ -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;

@@ -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;
    }
+39 −5
Changes for module/Application/src/Application/Controller/UtilisateurController.php: 39 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -17,12 +17,17 @@ 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\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
{
@@ -31,6 +36,7 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle
    use RoleServiceAwareTrait;
    use LdapPeopleServiceAwareTrait;
    use IndividuServiceAwareTrait;
    use EntityManagerAwareTrait;

    /**
     * @return array|\Zend\Http\Response|ViewModel
@@ -293,17 +299,45 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle

    public function creationUtilisateurAction()
    {
        /** @var Form $form */
        $form = $this->getServiceLocator()->get('FormElementManager')->get(CreationUtilisateurForm::class);
        $individu = null;

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $form->setData($request);
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                echo "go to action ajout utilisateur ...";
            } else {
                echo "KKKOOO";
            }

                /** @var Source $source */
                $source = $this->getEntityManager()->getRepository(Source::class)->findOneBy(["code" => 'COMUE::SYGAL']);
                $user   = $this->getEntityManager()->getRepository(Utilisateur::class)->findOneBy(["username" => 'sygal-app']);

                /** @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['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);

                /** @var Utilisateur $utilisateur */
                $utilisateur = new Utilisateur();
                $utilisateur->setUsername($data['prenom'].".".$data['nomUsuel']);
                $utilisateur->setPassword('db');
                $utilisateur->setState(1);
                $this->getEntityManager()->persist($utilisateur);
                $this->getEntityManager()->flush($utilisateur);
            }
        }


+4 −0
Changes for module/Application/src/Application/Form/CreationUtilisateurForm.php: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ namespace Application\Form;

use Zend\Form\Element\Submit;
use Zend\Form\Element\Text;
use Zend\Form\Element\Hidden;
use Zend\Form\Form;
use Zend\InputFilter\Factory;

@@ -14,6 +15,9 @@ class CreationUtilisateurForm extends Form
    {
        //$this->setObject(new RdvBu());

        $this->add(
            (new Hidden('id'))
        );
        $this->add(
            (new Text('civilite'))
                ->setLabel("Civilité :")
+22 −33
Changes for module/Application/src/Application/Form/Hydrator/CreationUtilisateurHydrator.php: 22 added lines, 33 removed lines.
Original line number Diff line number Diff line
@@ -17,45 +17,34 @@ class CreationUtilisateurHydrator implements HydratorInterface, EntityManagerAwa

    /**
     * @param array $data
     * @param RecapBu $recap
     * @return RecapBu
     * @param Individu $individu
     * @return Individu
     * @throws OptimisticLockException
     */
    public function hydrate(array $data, $recap) {

        /** @var Diffusion $diffusion */
        $repoUtilisateur = $this->entityManager->getRepository(Utilisateur::class);
        $repoIndividu = $this->entityManager->getRepository(Individu::class);

//        $diffusion = $repoDiffusion->findOneBy(["these" => $recap->getThese()]);
//
//        $recap->setOrcid($data['orcid']);
//        if ($diffusion !== null) {
//            $diffusion->setIdOrcid($data['orcid']);
//            $this->entityManager->flush($diffusion);
//        }
//        $recap->setNNT($data['nnt']);
//        $recap->setVigilance($data['vigilance']);
//        return $recap;
          return null;
    public function hydrate(array $data, $individu) {

        $individu->setCivilite($data['civilite']);
        $individu->setNomUsuel($data['nomUsuel']);
        $individu->setNomPatronymique($data['nomPatronymique']);
        $individu->setPrenom1($data['prenom']);
        $individu->setEmail($data['email']);

        return $individu;
    }

    /**
     * @param RecapBu $recap
     * @param Individu $individu
     * @return array
     */
    public function extract($recap) {

//        /** @var Diffusion $diffusion */
//        $repoDiffusion = $this->entityManager->getRepository(Diffusion::class);
//        $diffusion = $repoDiffusion->findOneBy(["these" => $recap->getThese()]);
//        $orcid = ($diffusion === null) ? null : $diffusion->getIdOrcid();
//
//        $data['orcid']      = $orcid;
//        $data['nnt']        = $recap->getNNT();
//        $data['vigilance']  = $recap->getVigilance();
//
//        return $data;
        return [];
    public function extract($individu) {

        $data = [];
        $data['civilite']        = $individu->getCivilite();
        $data['nomUsuel']        = $individu->getNomUsuel();
        $data['nomPatronymique'] = $individu->getNomPatronymique();
        $data['prenom']          = $individu->getPrenom1();
        $data['email']           = $individu->getEmail();

        return $data;
    }
}