Commit 0ad803a7 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Création d'Utilisateur à partir d'un Individu: impossible si l'individu est...

Création d'Utilisateur à partir d'un Individu: impossible si l'individu est déjà lié à un utilisateur.
parent d3faf7f0
Loading
Loading
Loading
Loading
+5 −0
Changes for module/Application/src/Application/Controller/UtilisateurController.php: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -158,6 +158,11 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle
            throw new RuntimeException("Individu introuvable avec cet id");
        }

        $utilisateurs = $this->utilisateurService->getRepository()->findByIndividu($individu);
        if (count($utilisateurs) > 0) {
            throw new RuntimeException("Il existe déjà un utilisateur lié à l'individu $individu.");
        }

        /** @var CreationUtilisateurFromIndividuForm $form */
        $form = $this->getServiceLocator()->get('FormElementManager')->get(CreationUtilisateurFromIndividuForm::class);
        $form->setIndividu($individu);
+16 −1
Changes for module/Application/src/Application/Entity/Db/Repository/UtilisateurRepository.php: 16 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

namespace Application\Entity\Db\Repository;

use Application\Entity\Db\Individu;
use Application\Entity\Db\Utilisateur;
use Doctrine\ORM\NonUniqueResultException;
use UnicaenApp\Exception\RuntimeException;
@@ -27,8 +28,22 @@ class UtilisateurRepository extends DefaultEntityRepository
        return $utilisateur;
    }

    public function findByEmail()
    /**
     * Recherche les utilisateurs lié à un individu.
     *
     * @param Individu $individu
     * @return Utilisateur[]
     */
    public function findByIndividu(Individu $individu)
    {
        $qb = $this->createQueryBuilder('u')
            ->join('u.individu', 'i')
            ->where('i = :individu')
            ->setParameter('individu', $individu);

        /** @var Utilisateur[] $utilisateurs */
        $utilisateurs = $qb->getQuery()->getResult();

        return $utilisateurs;
    }
}
 No newline at end of file