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

Merge branch 'hotfix_old_user_soutenance'

parents fc1b3178 0592d55d
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\OptimisticLockException;
use Doctrine\ORM\ORMException;
use UnicaenApp\Exception\RuntimeException;
use UnicaenAuth\Entity\Db\AbstractUser;
use UnicaenAuth\Service\Traits\UserServiceAwareTrait;
use UnicaenLdap\Entity\People;
use Zend\Crypt\Password\Bcrypt;
@@ -243,9 +244,9 @@ class UtilisateurService extends BaseService

    /**
     * Fonction utilisée lors de la déassociation d'un utilisateur/individu et un membre d'un jury de thèse
     * @param Utilisateur $utilisateur
     * @param AbstractUser $utilisateur
     */
    public function supprimerUtilisateur(Utilisateur $utilisateur) {
    public function supprimerUtilisateur(AbstractUser $utilisateur) {
        try {
            $this->getEntityManager()->remove($utilisateur);
            $this->getEntityManager()->flush($utilisateur);
+1 −2
Original line number Diff line number Diff line
@@ -264,7 +264,6 @@ class PresoutenanceController extends AbstractController
        if (!$acteur) throw new RuntimeException("Aucun acteur à deassocier !");

        //retrait dans membre de soutenance
        $username = $this->getMembreService()->generateUsername($membre);
        $membre->setActeur(null);
        $this->getMembreService()->update($membre);

@@ -273,7 +272,7 @@ class PresoutenanceController extends AbstractController
            $this->getValidationService()->unsignEngagementImpartialite($validation);
        }

        $utilisateur = $this->utilisateurService->getRepository()->findByUsername($username);
        $utilisateur = $this->getMembreService()->getUtilisateur($membre);
        if ($utilisateur) $this->utilisateurService->supprimerUtilisateur($utilisateur);

        return $this->redirect()->toRoute('soutenance/presoutenance', ['these' => $these->getId()], [], true);
+20 −2
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ use Soutenance\Entity\Qualite;
use Soutenance\Service\Qualite\QualiteServiceAwareTrait;
use UnicaenApp\Exception\RuntimeException;
use UnicaenApp\Service\EntityManagerAwareTrait;
use UnicaenAuth\Entity\Db\AbstractUser;
use UnicaenAuthToken\Entity\Db\AbstractUserToken;
use UnicaenAuthToken\Service\TokenServiceAwareTrait;
use UnicaenAuthToken\Service\TokenServiceException;
@@ -282,6 +283,24 @@ class MembreService {
        return ($nomusuel . "_" . $membre->getId());
    }

    /** RECUPERATION DE L'UTILSATEUR D'UN MEMBRE **********************************************************************/

    /**
     * @param Membre $membre
     * @return AbstractUser|null
     */
    public function getUtilisateur(Membre $membre) : ?AbstractUser
    {
        $acteur = $membre->getActeur();
        if ($acteur === null) return null;
        $individu = $acteur->getIndividu();
        if ($individu === null) return null;

        /** @var AbstractUser[] $utilisateurs */
        $utilisateurs = $individu->getUtilisateurs();
        return (empty($utilisateurs))?null:$utilisateurs[0];
    }

    /** GESTION DES TOKENS ********************************************************************************************/

    public function retrieveToken(Membre $membre) : ?AbstractUserToken
@@ -299,8 +318,7 @@ class MembreService {

    public function createToken(Membre $membre) : AbstractUserToken
    {
        $username = $this->generateUsername($membre);
        $utilisateur = $this->getUtilisateurService()->getRepository()->findByUsername($username);
        $utilisateur = $this->getUtilisateur($membre);
        if ($utilisateur === null) throw new LogicException("Aucun utilisateur n'est correctement déclaré pour le membre [username:".$username."]");

        try {